Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

git: How do you add an external directory to the repository?

Tags:

git

add

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:

  1. Move the /var/data/public/ directory into your Git-repo root (/var/data/my-app).

  2. 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!