如何忽略Git仓库中已在.gitignore声明的文件?.NET多项目遇忽略失效
解决多子文件夹.NET项目Git忽略失效问题
1. 修复根目录.gitignore规则
旧配置没覆盖到子文件夹的核心原因是缺少**通配符(它能匹配任意层级的子目录)。更新你的.gitignore,加入以下规则:
# .NET构建输出,匹配所有层级的bin/和obj/ **/bin/ **/obj/ # Visual Studio本地配置目录 **/.vs/ # 额外补充常见的.NET忽略项(按需保留) *.suo *.user *.dbmdl *.cache
2. 清除已被Git追踪的无效文件/目录
如果这些bin/、obj/、.vs/之前被提交到过仓库,.gitignore不会自动生效,必须先从Git索引中移除它们(本地文件不会被删除):
# 递归清除缓存中指定的目录 git rm -r --cached .vs/ obj/ bin/ # 提交缓存更新,说明移除了追踪的构建产物 git commit -m "Stop tracking build artifacts and local VS config directories"
3. 验证效果
执行git status,检查之前显示为修改的bin/、obj/、.vs/目录是否不再出现在变更列表中。
注意事项
- 确保.gitignore文件放在仓库根目录,而非某个子项目文件夹下
- 不要提交任何本地开发环境专属的配置文件(比如
*.user),这些文件每个开发者的环境都不一样 - 如果有特殊子项目需要保留某些输出目录,可以在规则前加
!例外,例如!ToolsProject/bin/
内容的提问来源于stack exchange,提问作者Magdaleno
相关产品推荐
相关产品推荐

