文章

Git 忽略已经提交的文件

有时候因为疏忽大意,没添加 .gitignore 就提交了,甚至推送到远程了,那么再想忽略提交怎么办呢?

常规方案

下面是网上流行的解决方案:

  1. 首先修改 .gitignore 文件,添加要忽略的
  2. 然后执行 git rm --cached <file> 删除跟踪记录
  3. 然后 git add <ignore> 暂存忽略文件的修改。
  4. 最后 git commit -m ""就好啦。

其中第二步也可替换为

git rm -r --cached . # 取消所有文件的跟踪
git add . # 重新跟踪所有文件

理论上这样是没问题的。但是实际上就不同了。

GUI 的坑

如果上边的某些步骤,例如第四步,你让 GUI 客户端代劳了,那么就很容易发生诡异的事情。在 commit 之后,如果再次修改被忽略的文件,会发现这东西居然又被重新跟踪了,简直阴魂不散。

解决方案也很简单,一定要用 git bash 命令行操作,不要偷懒用 GUI。