Visual Studio 2017中.gitignore规则未生效的问题求助
Git忽略规则不生效?原因和解决办法看这里!
嘿,我来帮你捋清楚这个问题哈!你遇到的情况其实挺常见的,主要原因和解决办法如下:
为什么这些文件还是出现在变更列表里?
- 核心原因:这些文件已经被Git追踪过了
Git的.gitignore规则只对从未被add/commit过的未追踪文件生效。如果这些.user、.pubxml和指定的.csproj文件在你配置.gitignore之前,就已经被提交到Git仓库里了,那后续加的ignore规则根本管不住它们——Git会继续追踪这些文件的变化。 - 至于
.gitignore本身出现在变更列表里,这个是正常的,因为你刚修改了它但还没提交,提交后就不会再显示啦。
怎么强制让Git忽略这些文件?
按下面的步骤操作,既能保留本地文件,又能让Git停止追踪它们:
移除Git对这些文件的追踪(保留本地文件)
打开终端,进入你的仓库根目录,执行git rm --cached命令,把每个需要忽略的文件从Git的追踪列表里移除:# 移除指定的.user文件 git rm --cached 你的项目文件夹/xxx.user # 移除指定的.csproj文件 git rm --cached Mycare.Repository/Mycare.Repository.csproj # 移除PublishProfiles下的.pubxml文件 git rm --cached Org/Properties/PublishProfiles/DevCMS.pubxml如果有大量同类文件,也可以用通配符批量处理(谨慎使用,避免误操作):
git rm --cached **/*.user git rm --cached **/*.pubxml提交变更
把.gitignore的修改和移除追踪的操作一起提交:git add .gitignore git commit -m "更新.gitignore规则,停止追踪无需版本控制的文件"验证效果
提交完成后,再看Team Explorer的变更选项卡,这些文件就不会再出现了,后续新生成的.user、.pubxml等文件也会被正常忽略。
额外注意事项
- 检查
.gitignore里的路径是否正确,比如你写的/Mycare.Repository/Mycare.Repository.csproj是根目录下的文件,要确保和实际路径一致。 - 操作
git rm --cached时,别漏掉--cached参数!如果没有这个参数,会直接删除本地文件,那就麻烦了。
内容的提问来源于stack exchange,提问作者L. Wallach
相关产品推荐
相关产品推荐

