我用分支推送时,.gitignore不会忽略文件

时间:2012-01-13 23:56:20

标签: git github

我的项目有两个分支,主分支和测试分支。当我在分支测试时,我编辑了文件.gitignore我添加了vendor / *。但由于某种原因,当我做git push origin test:掌握它仍然推送供应商的文件。有没有办法刷新缓存或类似的东西,以确保它的工作?

提前致谢

1 个答案:

答案 0 :(得分:6)

我的猜测是,在填充vendor之前,您已在.gitignore目录中通过git跟踪文件。

在这种情况下,您看到的行为是正常的:git索引知道这些文件并跟踪其内容。如果你在git跟踪文件后填写.gitignore,则为时已晚,它只会忽略你从这一点开始添加的文件。

您需要做的是取消引用这些文件(或“未跟踪”),以便索引不再了解它们 - 但不删除它们。为此,请使用--cached的{​​{1}}选项:

git rm

然后提交结果。从现在开始,当你填充.gitignore时,git rm -r --cached vendor 目录将被忽略。

请注意,您必须为在此目录中跟踪文件的每个分支重复此操作。

最后,有一种更具破坏性的方式,因此非常危险:vendor。但是你想做到这一点作为最后的手段,并且只有你确实需要它。