我的项目有两个分支,主分支和测试分支。当我在分支测试时,我编辑了文件.gitignore我添加了vendor / *。但由于某种原因,当我做git push origin test:掌握它仍然推送供应商的文件。有没有办法刷新缓存或类似的东西,以确保它的工作?
提前致谢
答案 0 :(得分:6)
我的猜测是,在填充vendor
之前,您已在.gitignore
目录中通过git跟踪文件。
在这种情况下,您看到的行为是正常的:git索引知道这些文件并跟踪其内容。如果你在git跟踪文件后填写.gitignore,则为时已晚,它只会忽略你从这一点开始添加的文件。
您需要做的是取消引用这些文件(或“未跟踪”),以便索引不再了解它们 - 但不删除它们。为此,请使用--cached
的{{1}}选项:
git rm
然后提交结果。从现在开始,当你填充.gitignore时,git rm -r --cached vendor
目录将被忽略。
请注意,您必须为在此目录中跟踪文件的每个分支重复此操作。
最后,有一种更具破坏性的方式,因此非常危险:vendor
。但是你想做到这一点作为最后的手段,并且只有你确实需要它。