github/gitignore · Dotnet.gitignore
.NET .gitignore テンプレート解説
Dotnet.gitignore が bin・obj、Debug・Release、NuGet パッケージ、MSBuild のバイナリログ、テスト結果、.env を無視する理由と、VisualStudio テンプレートとの違いを説明します。
Dotnet.gitignore は .NET SDK スタイルのプロジェクト(dotnet new で作った C#・F# プロジェクト)向けの簡潔なテンプレートである。テンプレート冒頭のコメントが述べるとおり、Visual Studio を使うなら IDE 関連のルールがはるかに多い VisualStudio テンプレートを併用するとよい。
VS Code、Rider、コマンドラインで開発するなら、このテンプレートだけでビルド結果とツールの副産物のほとんどを防げる。
ルール別の解説
| パターン | 何を、なぜ無視するか |
|---|---|
[Bb]in/[Oo]bj/[Dd]ebug/[Rr]elease/x64/x86/bld/ | ビルド出力dotnet build が作るアセンブリと中間ファイル(obj/project.assets.json など)である。ブラケットで Bin・bin のような大文字・小文字の違いをすべて捉える。 |
artifacts/project.lock.jsonproject.fragment.lock.json | .NET の成果物artifacts/ は .NET 8 から使える統合出力レイアウトのフォルダーで、project.lock.json は古い project.json 時代の復元結果である。 |
*.nupkg*.snupkg | NuGet パッケージdotnet pack で作ったパッケージとシンボルパッケージである。NuGet フィードに公開する成果物である。 |
*.binlog[Tt]est[Rr]esult*/[Bb]uild[Ll]og.*TestResult.xmlnunit-*.xmlCodeCoverage/ | ログ・テスト結果MSBuild のバイナリログ(-bl オプション)、テスト・カバレッジの結果である。バイナリログには環境変数などの機密値が含まれることがあるため、共有には注意する。 |
.env~$**~ | 環境・一時ファイル環境変数ファイル、Office 文書を開いたときに作られるロックファイル(~$文書.docx)、エディターのバックアップファイルである。 |
実務での注意点
[Ll]og/ルールはあらゆる深さのlogフォルダーを無視する。ソースの名前空間フォルダーの名前がLogなら例外ルールを追加する。packages.lock.json(NuGet のロックファイル)は無視の対象ではない。ロックモードを使うならコミットする。- ユーザーシークレットは
dotnet user-secretsでプロジェクトの外(ユーザープロファイル)に保存すれば、gitignore を気にする必要がない。
元のテンプレート
Dotnet.gitignore
## A streamlined .gitignore for modern .NET projects## including temporary files, build results, and## files generated by popular .NET tools. If you are## developing with Visual Studio, the VS .gitignore## https://github.com/github/gitignore/blob/main/VisualStudio.gitignore## has more thorough IDE-specific entries.#### Get latest from https://github.com/github/gitignore/blob/main/Dotnet.gitignore# Build results[Dd]ebug/[Dd]ebugPublic/[Rr]elease/[Rr]eleases/x64/x86/[Ww][Ii][Nn]32/[Aa][Rr][Mm]/[Aa][Rr][Mm]64/bld/[Bb]in/[Oo]bj/[Ll]og/[Ll]ogs/# .NET Coreproject.lock.jsonproject.fragment.lock.jsonartifacts/# ASP.NET ScaffoldingScaffoldingReadMe.txt# NuGet Packages*.nupkg# NuGet Symbol Packages*.snupkg# dotenv environment variables file.env# Others~$**~CodeCoverage/# MSBuild Binary and Structured Log*.binlog# MSTest test Results[Tt]est[Rr]esult*/[Bb]uild[Ll]og.*# NUnit*.VisualState.xmlTestResult.xmlnunit-*.xml
テンプレートの出典: github/gitignore/Dotnet.gitignore @356fd7b (2026-09-11) · CC0-1.0