Ignore symbolic links in .gitignore Ignore symbolic links in .gitignore windows windows

Ignore symbolic links in .gitignore


Use git version >= 1.6

Git used to treat sym-links the same as regular files, but newer git versions (>= 1.6) check if a file is beyond a symbolic link and will throw a fatal error.

e.g.:

# git init # mkdir newdir # touch newdir/foo # git add newdir/foo # git commit -m 'add foo' # mv newdir /tmp/ # ln -s /tmp/newdir # touch newdir/bar # git add newdir/bar fatal: 'newdir/bar' is beyond a symbolic link# git add/tmp/newdirfatal: '/tmp/newdir' is outside repository# git --versiongit version 1.7.3.4


No, it is not possible to do this globally. However, if you have lots of symlinks here is a bash script that you can use to easily add them to your repo's .gitignore file:

for f in $(git status --porcelain | grep '^??' | sed 's/^?? //'); do    test -L "$f" && echo $f >> .gitignore; # add symlinks    test -d "$f" && echo $f\* >> .gitignore; # add new directories as welldone