背景:在项目已经新建后并且提交过一次,此时在gitignore中添加忽略文件却未起作用,一直被添加到git文件。
首先去了解了下gitignore的具体用法:
在创建项目后未提交push,此时添加gitignore都是可以生效的,它只能作用于未被跟踪的文件,也就是那些从来没有被git记录过的文件。如果文件曾经被git记录过,那么.gitignore就对他们完全无效。
所以,在项目开发过程中再添加gitignore文件,那么之前开发添加git的文件档案不会被排除,即使你已经添加到gitignore文件中,gitignore会告诉git版本控制系统不要处理指定规则下的文件档案,但只要文件再被指定前有提交过,那么这些文件就会被持续追踪。简单来说,就是gitignore只能忽略没有被git追踪的文件。
那么如何消除被git追踪而我们又想要忽略的文件,可以按如下步骤:
1、清楚本地git提交的缓存,只是移除文件缓存,不会删除文件提交记录
git rm -r --cached .
注意加上-r,-r表示会递归每个文件下的文件档案
2、重新加入git追踪,这时会采用gitignore规则
git add .
3、将第二步的规则提交
git commit -m 'update.gitignore'