github/gitignore · Dotnet.gitignore
Template .gitignore do .NET explicado
Explica por que o Dotnet.gitignore ignora bin e obj, Debug e Release, pacotes NuGet, logs binários do MSBuild, resultados de testes e .env, e como ele difere do template VisualStudio.
O Dotnet.gitignore é um template conciso para projetos no estilo SDK do .NET (projetos C# e F# criados com dotnet new). Como informa o comentário de cabeçalho do template, se você usa o Visual Studio, é bom usar também o template VisualStudio, que tem muito mais regras relacionadas à IDE.
Se você desenvolve com VS Code, Rider ou pela linha de comando, só este template já bloqueia a maior parte dos resultados de build e dos subprodutos de ferramentas.
Explicação regra por regra
| Padrão | O que ignora e por quê |
|---|---|
[Bb]in/[Oo]bj/[Dd]ebug/[Rr]elease/x64/x86/bld/ | Saída de buildSão os assemblies e arquivos intermediários (obj/project.assets.json etc.) gerados pelo dotnet build. Os colchetes pegam diferenças de maiúsculas como Bin e bin. |
artifacts/project.lock.jsonproject.fragment.lock.json | Artefatos do .NETartifacts/ é a pasta do layout de saída unificado disponível a partir do .NET 8, e project.lock.json é o resultado de restauração da antiga época do project.json. |
*.nupkg*.snupkg | Pacotes NuGetSão os pacotes e pacotes de símbolos criados com dotnet pack. São artefatos publicados em um feed do NuGet. |
*.binlog[Tt]est[Rr]esult*/[Bb]uild[Ll]og.*TestResult.xmlnunit-*.xmlCodeCoverage/ | Logs e resultados de testesSão os logs binários do MSBuild (opção -bl) e os resultados de testes e cobertura. Os logs binários podem conter valores sensíveis, como variáveis de ambiente, então é preciso cuidado ao compartilhá-los. |
.env~$**~ | Arquivos de ambiente e temporáriosSão o arquivo de variáveis de ambiente, o arquivo de lock que surge ao abrir documentos do Office (~$documento.docx) e os arquivos de backup do editor. |
Cuidados na prática
- A regra
[Ll]og/ignora pastaslogem qualquer profundidade. Se uma pasta de namespace do código se chamaLog, adicione uma regra de exceção. - O
packages.lock.json(arquivo de lock do NuGet) não é ignorado. Se você usa o modo de lock, commite-o. - Se você guardar os segredos de usuário fora do projeto (no perfil do usuário) com
dotnet user-secrets, não precisa se preocupar com o gitignore.
Template original
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
Origem dos templates: github/gitignore/Dotnet.gitignore @356fd7b (2026-09-11) · CC0-1.0