2011-07-08 35 views
35

我學過how to exclude an entire directory in git(將一行bin/添加到.gitignore)。我已經學會how to ignore files "after the fact"(即它們已被添加之後,GIT):添加後從Git倉庫中忽略目錄

git rm --cached <filename> 

如何忽略整個目錄(例如bin/後它已被添加到一個Git回購?

我試圖git rm --cached bin/但我收到了錯誤:

fatal: pathspec 'bin/' did not match any files

當我試圖(在根目錄下,其中存在的.git)git rm --cached MyProj/bin/錯誤是不同的:

fatal: not removing 'MyProj/bin/' recursively without -r

什麼這是否意味着我現在需要提交和/或分支它?

+3

請注意我答案中的'-r'標記。你必須使用'遞歸':) – Nic

+0

@melee它的工作!但是現在我有另外一個問題。查看更新。 :) – WinWin

回答

65

我能夠獲得在回購的根與git rm -r --cached bin/這個工作(注意遞歸-r) - 你在說什麼找到的bin目錄和untracking呢?

您必須在排除反映之前commit

我剛剛看到你在Windows上。這是在OSX的終端,只是一個頭。

+0

是的,我在Windows上,但我使用Cygwin,它提供了一個類似Unix的體驗......請參閱上面的更新。我不確定我是否明白你的意思是「發現」。我的項目中只有一個'bin /'子目錄。不過,'.git'目錄是我項目目錄的兄弟(即整個git跟蹤啓動上面的一個目錄,其中可能包含多個項目)。感謝和+1的見解。 – WinWin

+0

嗯。這是一個想法;觸摸或編輯bin目錄中的一個文件,然後嘗試獲取狀態。如果這有效,他們不應該再跟蹤。 – Nic

+0

@WinWin對不起,我在我的手機上,錯過了編輯的一部分。很高興你能弄清楚它! – Nic