2012-07-30 123 views
13

我无法让这个工作。如何让Windows上的Git忽略符号链接

我已经克隆了一个具有虚拟文件(名为src)的存储库:/path/src

在Windows上,我创建了一个符号链接:mklink -d /path/src /otherplace/src(但我当然必须先删除虚拟src文件)。
在我.gitignore.git/info/exclude两个我有

/path/src/ 
/path/src 
path/src/ 
path/src 

我试图

git ls-files -s | gawk '/120000/{print $4}' 

git update-index path/src/ --assume-unchanged 

,但我仍然得到:

error: readlink("path/src"): Function not implemented 
error: unable to index file path/src 
fatal: updating files failed 

我已经尝试了所有theseothersuggestions。甚至this doesn't work
任何想法?

+0

你解决了这个问题吗? – Jus12 2014-09-01 04:07:39

+0

@ Jus12,说实话,我不记得我是否曾经解决过它。这是前一段时间,我不记得它是哪个项目。 – 2014-09-01 11:05:00

+1

我没有答案,但我知道设置'git config core.symlinks true'而不是'git config core.symlinks false'为我摆脱了Function not implemented错误。 因此,我在Windows中使用mklink创建的符号链接没有错误地被推送,但是当再次克隆该项目时,符号链接变成文本文件,说明原始文件的位置,而不是作为真正的符号链接工作。 – 2015-12-12 07:13:08

回答

3

你可以做一个结账忽略这样这个单一文件:

git checkout HEAD . --no path/src 

.gitignore文件仅适用于添加的东西到索引中。即使对添加到.gitignore之前提交的文件进行了修改,也不会被忽略。

+0

似乎没有命令“git checkout HEAD。--no”“error:Ambiguous option:no”(Git 1.9.4) – JoeyC 2014-10-23 07:54:58

+1

是的@JoeyC它刚刚发生在我测试它时。将寻找另一种解决方案。 – 2014-12-01 18:35:26