取消文件跟踪

对所有文件都取消跟踪

  • 不删除本地文件:git rm -r -cached
  • 删除本地文件:git rm -r —f

对指定文件取消跟踪

删除.env文件跟踪,保留文件

git rm --cached .env

删除.env文件跟踪,并删除文件

git rm --f .env

注意:如果创建.gitignore文件就已经push过项目,那么加入新的规则也不会起作用
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

不要误解了 .gitignore 文件的用途,该文件只能作用于 Untracked Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件)。
如果文件曾经被 Git 记录过,那么.gitignore 就对它们完全无效

示例

取消跟踪目录

$ git rm -r --cached 目录名/
rm 'public/目录名/api_data.js'
rm 'public/目录名/api_data.json'
rm 'public/目录名/api_project.js'

参考文献

git取消文件跟踪

Git忽略提交规则 - .gitignore配置运维总结

Git——跟踪或取消跟踪文件