Visual Studio 项目的 .gitignore 应该怎么写
Visual Studio 项目的 .gitignore 核心项:[Bb]in/、[Oo]bj/、.vs/、.user、.suo、Debug/Release 构建输出、packages/(老格式)、.pdb、TestResults/。推荐直接使用 GitHub 官方 VisualStudio 模板。
直接用 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(这个要提交)。