解决.gitignore无法忽略文件的办法

遇到的问题

在项目中使用了git作为版本控制工具,大家都知道在git中我们可以编写.gitignore文件来忽略我们不想提及的文件。但是在使用.gitignore的时候经常会遇到下面这两个问题:

1、当次编写的.gitignore文件无法忽视前一次已经提交掉的文件,换句话说,我在上一次提交的时候添加了sb.js文件,而我在当前提交的时候,在.gitignore忽略规则中编写了

1
2
# .gitignore 文件
sb.js

然而我先前提交掉的sb.js已经存在我的仓库里面了,而我的本意是想在本次提交之后清除仓库中的sb.js文件的,并没有达到我的预期。

2、 编写好.gitignore文件之后,规则中的文件并没有被正确忽略,或者说自己编写的规则没有让文件达到被忽略的效果。比如,我编写了这样的忽略规则

1
2
3
# .gitignore 文件
a.txt
b.txt

但是可能git只忽略掉了a.txt,而b.txt没被忽略掉,这种情况也同样违背了我的初衷。

解决方法

我们只需要在git项目的根目录执行

1
git rm -r --cached .

先把缓存清空掉,然后再重新

1
git add -A

把所有的文件再提交一次就ok了。这个时候应该就可以看到我们的.gitignore可以正常运作了。