您的位置:首页 > 其它

git忽略已经被提交的文件

2017-09-07 09:07 375 查看
正确的做法应该是:
git rm
--cached logs/xx.log
,然后更新 
.gitignore
 忽略掉目标文件,最后 
git
commit -m "We really don't want Git to track this anymore!"


分析:为什么我增加了 .gitignore 里的规则却没有效果?

这是因为我们误解了 .gitignore 文件的用途,该文件只能作用于 Untracked Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件)。

之所以你的规则不生效,是因为那些 
.log
 文件曾经被 Git 记录过,因此 
.gitignore
 对它们完全无效。这也正是开头那段简短答案所做的事情:
从 Git 的数据库中删除对于该文件的追踪;
把对应的规则写入 .gitignore,让忽略真正生效;
提交+推送。

只有这样做,所有的团队成员才会保持一致而不会有后遗症,也只有这样做,其他的团队成员根本不需要做额外的工作来维持对一个文件的改变忽略。

最后有一点需要注意的,
git rm --cached
 删除的是追踪状态,而不是物理文件;如果你真的是彻底不想要了,你也可以直接 
rm
+忽略+提交。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: