0%

gitignore不生效的问题解决

在项目文件夹想要忽略某文件, 可以创建gitignore文件,写入相应文件名。但有时候会遇到写入的gitignore后,git status显示没有排除该文件。之前git提交过
后再改写gitignore可能会出现这问题。此前遇到,记录一下。

原因

GitHub Docs中的解释:

If you want to ignore a file that is already checked in, you must untrack the file before you add a rule to ignore it. From your terminal, untrack the file.

1
$ git rm --cached FILENAME

即在gitignore文件中忽略以前提交过的文件需要先从cached中清除。

解决办法

1
$ git rm -r --cached .

上面的命令会清除以前的git历史,之后再次git add .会重新添加所有文件,不嫌麻烦可以可以根据git status查看不生效的文件名/夹单独清除缓存,使用git rm -r --cached file/directory

参考资料