github/gitignore · Dotnet.gitignore
Разбор шаблона .gitignore для .NET
Почему Dotnet.gitignore игнорирует bin и obj, Debug и Release, пакеты NuGet, бинарные журналы MSBuild, результаты тестов и .env, и чем он отличается от шаблона VisualStudio.
Dotnet.gitignore — компактный шаблон для проектов в стиле .NET SDK (проектов C# и F#, созданных через dotnet new). Как сказано в заголовочном комментарии шаблона, если вы работаете в Visual Studio, лучше использовать вместе с ним шаблон VisualStudio, где правил для IDE гораздо больше.
Если вы разрабатываете в VS Code, Rider или в командной строке, одного этого шаблона хватит, чтобы заблокировать большую часть результатов сборки и побочных файлов инструментов.
Разбор правил
| Шаблон | Что и почему игнорируется |
|---|---|
[Bb]in/[Oo]bj/[Dd]ebug/[Rr]elease/x64/x86/bld/ | Результаты сборкиСборки и промежуточные файлы (obj/project.assets.json и др.), которые создаёт dotnet build. Скобки охватывают различия в регистре, например Bin и bin. |
artifacts/project.lock.jsonproject.fragment.lock.json | Артефакты .NETartifacts/ — папка единой схемы вывода, доступной начиная с .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