添加目录后,从Git存储库中忽略目录


73

我已经学会了如何排除git的整个目录(添加一行bin/.gitignore)。而且我已经学会了如何“事后”忽略文件(即在将文件添加到git之后):

git rm --cached <filename>

将整个目录(例如bin/)添加到Git存储库,如何忽略呢?

我尝试过,git rm --cached bin/但收到的只是错误:

严重:pathspec'bin /'与任何文件都不匹配

当我尝试(在.git存在的根目录中)时git rm --cached MyProj/bin/,错误有所不同:

致命的:没有-r时,不会递归删除“ MyProj / bin /”

这是什么意思,我现在需要提交和/或分支吗?


4
注意-r我的答案中的标签。您必须使用它recursive:)
Nic

@melee奏效了!但是现在我还有另一个问题。查看更新。:)
WinWin

Answers:


122

我能够在回购的根目录下使用它git rm -r --cached bin/(请注意递归-r)-您是否在谈论查找bin目录并取消跟踪它们?

您必须commit在反映排除情况之前必须这样做。

我刚刚看到您在Windows上。这是在OSX的Terminal中,只有一个提示。


是的,我在Windows上,但是我正在使用Cygwin,它提供了整个Unix般的体验...请参阅上面的更新。我不确定我是否理解“查找”的意思。bin/我的项目下确实只有一个子目录。.git但是,该目录是我项目目录的同级文件(即整个git跟踪从上面的一个目录开始,其中可能包含多个项目)。感谢您+1的见解。
WinWin

嗯 这是个主意;触摸或编辑bin目录中的文件之一,然后尝试获取状态。如果这样有效,则它们不应再进行跟踪。
Nic

@WinWin对此感到抱歉,我在手机上,错过了部分编辑内容。很高兴您能够弄清楚!
Nic

9
git rm -r --cached <folder_name>在根文件夹(包含.git文件夹)中尝试过,但仍然收到错误消息fatal: pathspec 'folder_name' did not match any files。这特别奇怪,因为我已经能够按“ tab”键自动完成文件夹的名称。我正在使用终端机。有任何想法吗?
hyang123

2
@haopei:发生在您的bin目录为空或未跟踪的文件夹时。请按<code> git status </ code>检查。
nofomopls 2015年

1

在Windows上:

git rm -r --cached ./FOLDERNAME/

然后做其他的事情。(addcommitpush

(请注意,在Windows上,应./像上面一样在文件夹名称之前使用。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.