If I need to do something like that I would normally move that external file or directory into my git repo and symlink it's original location to the new one.
mv /home/some/directory /htdocs/directory
ln -s /htdocs/directory /home/some/
git add ./directory
I use this technique when I am developing a plug-in for an application that I want to keep under version control but have to store in a specific location.
I had the same error... Googled it to death... not much came out.
Christian's answer worked :
git --work-tree=/ add /home/some/directory
But then "work-tree" got me going. I grep'd all Git docs and came up with core.worktree
.
I used
git config --global core.worktree /
And voila! I can now add from any directory in the system. I don't know if it will cause problems any other places, but I'll try to update as I go along.
git --work-tree=/ add /home/some/directory
There's a really simple solution to this.
Let say you're Git-repo is in /var/data/my-app and you want to add /var/data/public/ to that repo. You can't use 'add' because Git won't add resources outside of the repo's root directory. So..
Solution:
Move the /var/data/public/ directory into your Git-repo root (/var/data/my-app).
Create a sym-link (symbolic link) inside of /var/data/public to the /var/data/my-app/public folder, using: ln -s source_file_or_directory virtual_file_or_directory
Then, just add the moved file or directory to Git using git add
in the normal fashion. Your Git source control is now tracking the desired file/folder, and your sym-link in the external directory assures that the file/folder is accessible to whatever else!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With