忽略git已经被提交的文件

可能大家在开发过程中都遇到过这样的情况,因为本地开发环境的差异产生了一些新的文件,比如Idea产生的项目文件,和关联文件、log。对于没有经验的新手或者在疏忽的情况下也可能把这些文件直接推送到了远程代码仓库。而后我们可能才想起来要在.gitignore中加入这个避免被提交到远程仓库,加上之后会发现根本没用了。

.gitignore不生效是因为我们误解了其用途,该文件只能作用于 Untracked Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件)。之所以你的规则不生效,是因为那些 .log 文件曾经被 Git 记录过,因此 .gitignore 对它们完全无效。
所以面对问题我们可以做以下操作:
1. 从 Git 的数据库中删除对于该文件的追踪;
2. 把对应的规则写入 .gitignore,让忽略真正生效;
3. 提交+推送。
只有这样做,所有的团队成员才会保持一致而不会有后遗症,也只有这样做,其他的团队成员根本不需要做额外的工作来维持对一个文件的改变忽略。

需要注意的是,git rm –cached 删除的是追踪状态,而不是物理文件;如果你真的是彻底不想要了,你也可以直接 rm+忽略+提交。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据