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

Eki*_*bal 1 git github

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

提前致谢

fge*_*fge 7

我的猜测是你在vendor填充之前在你的目录中有git跟踪的文件.gitignore.

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

您需要做的是取消引用这些文件(或"未跟踪"),以便索引不再了解它们 - 但不删除它们.为此,请使用以下--cached选项git rm:

git rm -r --cached vendor
Run Code Online (Sandbox Code Playgroud)

然后提交结果.从现在开始,当你填充.gitignore时,该vendor目录将被忽略.

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

最后,有一种更具破坏性的方式,因此非常危险:git filter-branch.但是你想做到这一点作为最后的手段,只有你真的需要这个.