git如何忽略已经被追踪的文件

2020-03-11  本文已影响0人  lotty_wh

问题出现的场景

有时候我们在项目初始化提交时,将某个无用文件提交到了远程仓库中。之后,在整理项目时,你希望将远程仓库中的这个无用文件添加到. gitignore忽略文件中,从而令其修改不会被git追踪到。然而,事与愿违,你会发现,一旦这个文件被改动(几乎都是由于项目编译引起的改动),git总能追踪到他,及时已经正确的被添加到. gitignore文件中

产生问题的原因

这是因为我们误解了. gitignore文件的用途,该文件只能作用于Untracked Files,也就是那些从来没有被git记录过的文件(自添加以后,从未add以及commit过的文件)。
之所以. gitignore的规则不生效,是因为那份无用文件曾经被git记录过,因此. gitignore对它们完全无效。

从根源解决问题

了解了原因以后,我们需要做的就很明确了:

  1. 从 Git 的数据库中删除对于该文件的追踪
  2. 把对应的规则写入 .gitignore,让忽略真正生效
  3. 提交+推送

具体执行

强制忽略

使用命令git update-index --assume-unchanged <files>来强制忽略指定文件,命令执行后,在使用git status时,被强制忽略的文件就不会出现在工作区了。当需要取消强制忽略时,可以使用git update-index --no-assume-unchanged <files>命令来达到目的。

上一篇下一篇

猜你喜欢

热点阅读