忽略.gitignore中的符号链接

可以告诉Git忽略符号链接吗? 我正在使用混合的Linux / Windows环境,正如您所知,符号链接在两者之间的处理方式非常不同。

Solutions Collecting From Web of "忽略.gitignore中的符号链接"

使用git版本> = 1.6

Git用来处理与常规文件相同的sym-links,但是更新的git版本(> = 1.6)会检查文件是否超出了符号链接,并且会引发严重的错误。

例如:

 # 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/newdir fatal: '/tmp/newdir' is outside repository # git --version git version 1.7.3.4 

不,全球无法做到这一点。 然而,如果你有很多的符号链接,这里是一个bash脚本,你可以用它来轻松地将它们添加到你的仓库的.gitignore文件中:

 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 well done