文章

Gitignore仍然跟踪

针对添加Gitignore后仍然跟踪文件的解决方案

Gitignore仍然跟踪

相信各位程序员都遇到过Git仓库中将某文件添加到Gitignore之后Git仍然跟踪的情况,同样,我也遇到了很多次,但是每一次都忘记了之前自己的如何解决这个问题的,所以今天再次遇到之后便写此文章便于自己以后再遇到同一问题时可以快速解决。

产生原因

首先产生这个问题的原因是我们添加到Gitignore的文件已经在Git中跟踪了,这时我们再将其添加到Gitignore已经无法再起作用了,这时候Git不会再检查Gitignore,会持续地跟踪已经跟踪的所有文件的更改。所以我们要解决这个问题首要地就是要将其从Git的跟踪文件中清除出去,之后再提交代码就不会再跟踪这些文件了。

解决方案

删除缓存文件

首先我们要删除不应该跟踪但是实际上跟踪的文件的缓存记录,所以我们执行如下命令:

1
git rm -r --cached .

其中参数意思如下:

rm
表示删除对应的文件
-r
表示递归地删除满足条件的文件夹下包含子文件夹的所有文件
--cached
表示只删除缓存的文件,如果不加这个参数会将对应的工程中的文件和缓存的文件一起删除
.
用于匹配需要删除的文件,.表示所有文件

检查

接下来最好运行

1
git ls-files

其会输出当前所有缓存的文件,如果缓存删除成功,则不应当输出任何文件,因为现在没有任何缓存的文件存在。

重新添加

接下来运行

1
git add .

将所有文件重新添加跟踪,这时Gitignore会起作用(不用担心添加顺序问题导致Gitignore不起作用)。添加完成之后也可以运行

1
git ls-files

检查添加的目录是否正确。

最后正常commit和push即可。

本文由作者按照 CC BY 4.0 进行授权