很多时候某些本地生成的文件如编译器生成的文件,不想让git跟踪变更并提交 有两种情况:
1.未被Git系统追踪的文件(UntrackedFile,例如未被 git add的文件) 。可通过.gitignore规则忽略;
例如忽略项目目录下Test.sln文件。打开.gitignore文件并输入\Test.sln:


这样就能忽略掉未追踪文件。
2.在.gitignore规则提交后的文件。由于已经被Git追踪,除了在.gitignore添加该目录/文件,还要删除远程仓库中的文件。
git rm -r --cached 【目录或文件】 //如:git rm -r --cached Test.sln
git commit -m 忽略文件
git push //推送到远程,从远程仓库中删除掉
参数解析:
git rm 是删除文件,加--cached 参数表示从索引中删除,不再跟踪该文件或目录,但本地不会进行删除。
对于文件,可以不需要-r参数,-r是递归删除;如果输入的是目录,则会递归删除整个目录中的所有子目录和文件:
注意:git rm -r --cached 是高危操作,在命令后一定要指定目录或文件 ,否则 会删除所有缓存。
本文介绍了如何使用Git忽略已追踪和未追踪的文件。对于未被Git追踪的文件,可以通过编辑.gitignore文件来忽略,例如添加Test.sln规则。而对于已追踪的文件,需要结合`git rm --cached`命令,先从Git索引中移除,再提交和推送以从远程仓库中删除。请注意,`git rm --cached`操作需谨慎,防止误删重要文件。
1125

被折叠的 条评论
为什么被折叠?



