2012-07-30 76 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