Visual Studio 项目的 .gitignore 应该怎么写

Visual Studio 项目的 .gitignore 核心项:[Bb]in/、[Oo]bj/、.vs/、.user、.suo、Debug/Release 构建输出、packages/(老格式)、.pdb、TestResults/。推荐直接使用 GitHub 官方 VisualStudio 模板。

最佳实践
Git 分支协作与合并示意

直接用 GitHub 官方的 VisualStudio 模板(新建仓库时选 .gitignore: VisualStudio,或从 github/gitignore 仓库复制)。核心排除三类:构建输出(bin/obj/Debug/Release)、用户私有配置(.vs/、.user、.suo)、临时与缓存文件。

核心条目速览

# 构建输出
[Bb]in/
[Oo]bj/
[Oo]ut/
[Dd]ebug/
[Rr]elease/
x64/
x86/

# Visual Studio 用户私有
.vs/
*.user
*.suo
*.userosscache
*.sln.docstates

# 调试/诊断
*.pdb
*.psess
*.vsp
TestResults/

# NuGet(老式 packages 目录;PackageReference 无此项)
packages/
*.nupkg

# Rider / ReSharper
.idea/
*.DotSettings.user

几个要点

  • .vs/ 必须忽略:它是 VS 2015+ 的本机缓存目录,体积大且纯属本机状态;
  • 大小写模式 [Bb]in/:Git 的模式匹配区分大小写,这样写同时覆盖 bin 和 Bin;
  • NuGet:老式 packages.config 项目忽略 packages/;新的 PackageReference 项目还原到全局缓存目录,无需忽略包目录;
  • 不要提交 .suo、*.user:里面是你的窗口布局、本机调试设置,提交会不断产生无意义 diff。

获取完整模板

完整模板几百行,覆盖各种边缘情况(Blend、Resharper、SQL Server 项目等),不要手写,直接拿官方模板按需裁剪。

常见问题(FAQ)

Q:已误提交 bin/obj 怎么办?

git rm -r --cached bin obj 移出索引,确认 .gitignore 已配置,提交。历史中的体积需要 filter-repo 才能清除。

Q:.sln 解决方案文件要提交吗?

要。.sln 和 .csproj 是项目结构定义,必须进版本库。忽略的只是用户私有部分(.suo、.user)。

Q:团队混用 VS 和 VS Code/Rider?

模板里已包含 .vscode/ 和 .idea/ 条目(官方模板较全),确认启用即可;代码风格统一交给 .editorconfig(这个要提交)。

参考资料

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台