Menu

Gerador de .gitignore

Monte um .gitignore limpo para qualquer stack — linguagens, frameworks, IDEs e SO.

Última atualização

Stacks rápidos
Escolha templates2 selecionados

Linguagens

Frameworks

Editores e IDEs

Sistemas operativos

.gitignore · 37 linhas
# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
.pnpm-store/
.npm
.yarn-integrity

# Coverage
coverage/
*.lcov
.nyc_output

# Build output
dist/
build/

# Environment
.env
.env.local
.env.*.local

# macOS
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

O que é um gerador de .gitignore?

Todo repositório Git precisa de um .gitignore. É a lista em texto plano de caminhos que o Git **não** deve rastrear: artefatos de build, pastas de dependências, configs de IDE, lixo do SO como .DS_Store. Sem ele, o primeiro commit arrasta sem querer node_modules/, .env e target/, e desfazer essa bagunça é bem mais chato do que deixar o arquivo certo desde o início.

Cada ecossistema ignora coisas diferentes, e a maioria dos projetos cruza vários. Um app típico de Node + TypeScript num Mac com VS Code já precisa da união de quatro listas. Escrever isso de cabeça significa esquecer coverage/, vazar um .env ou commitar um .idea/ perdido de um colega que usa JetBrains.

Por isso este gerador empacota templates curados do projeto canônico github/gitignore — as mesmas regras das sugestões oficiais do GitHub — e permite empilhar. Marque as caixas, e a ferramenta emite um único .gitignore deduplicado pronto para colar no repo. Sem contas, sem upload, tudo no navegador.

O que você aprende montando seu .gitignore

  • Padrões de .gitignore usam glob: *.log ignora todo log, build/ ignora uma pasta, !important.log reinclui um arquivo mesmo que um glob o capture.
  • Padrões se aplicam relativos à pasta do .gitignore — um .gitignore em src/ só afeta arquivos sob src/.
  • Arquivos já rastreados **não** ficam ignorados retroativamente. Se você commitou node_modules/ e depois adicionou ao .gitignore, ainda precisa de git rm -r --cached node_modules para destrackear.

Como gerar um .gitignore passo a passo

  1. Escolha um preset (opcional)

    Se o projeto bate com uma combinação comum — Next.js, Django, Rails — clique no preset para marcar as caixas relevantes. Depois ajuste, adicionando ou removendo algumas.

  2. Adicione suas linguagens

    Cada linguagem tem artefatos: Node tem node_modules/, Python tem __pycache__/ e virtualenvs, Java tem target/ e .class. Marque as linguagens que o projeto compila de fato.

  3. Adicione seus frameworks

    Sobre as regras de linguagem, frameworks adicionam diretórios próprios: Next.js quer .next/ e .vercel, Django quer staticfiles/ e db.sqlite3, Rails quer tmp/ e /storage/*. Marque o que você usa.

  4. Adicione editores e SO

    Inclua os templates dos editores do **time** (não só os seus) — se alguém usa JetBrains ou Vim, marque. Depois adicione os SOs do time: macOS solta .DS_Store, Windows solta Thumbs.db, ambos são fáceis de commitar sem querer.

  5. Copie ou baixe

    O painel direito mostra a saída combinada e deduplicada. Clique em **Copiar** para colar num .gitignore na raiz, ou em **Baixar** para salvar o arquivo direto.

Sintaxe do .gitignore — referência rápida

Os padrões que você mais vai escrever. Referência completa em git-scm.com/docs/gitignore.

PadrãoSignificadoExemplo
node_modulesIgnora um arquivo ou pasta com este nome exato em qualquer lugar da árvoreCaptura tanto /node_modules quanto src/node_modules
node_modules/Barra no final — só combina com **pasta**, não arquivo de mesmo nomeNão captura arquivo nomeado node_modules por engano
/buildBarra no início — ancorada à pasta do .gitignoreCaptura /build mas não src/build
*.logGlob — captura qualquer arquivo terminado em .logCaptura error.log, debug.log, logs/foo.log
!important.logNegação — reinclui um arquivo capturado por uma regra anteriorCombine com *.log para manter um log rastreado
docs/**/draftAsterisco duplo — captura draft em qualquer subpasta de docs/Captura docs/v1/draft e docs/2025/q1/draft
# commentComentário — Git ignora linhas começando com #Agrupe regras com cabeçalhos como # Node.js

Exemplos de .gitignore para testar

Um .gitignore mínimo de Node.js + macOS

O que todo projeto Node num Mac precisa

# Node.js node_modules/ npm-debug.log* dist/ .env .env.local # macOS .DS_Store ._*

O mínimo para qualquer projeto Node compartilhado com colega no macOS. Mesmo um projeto pequeno deveria ter essas regras — sem .DS_Store e node_modules/ você briga com conflitos inúteis.

Python + Django + JetBrains

Stack Python server-side comum

# Python __pycache__/ *.py[cod] .venv .pytest_cache/ # Django *.log local_settings.py db.sqlite3 media/ staticfiles/ # JetBrains .idea/ *.iml

Um backend Django típico desenvolvido no PyCharm. Note que o db.sqlite3 local é ignorado — produção não usa e commitar vaza dados de dev e quebra os clones fresh dos colegas.

Sobrescreva uma regra com uma negação

Ignore todos os logs exceto um

*.log !keep-me.log

A primeira linha ignora todo .log. !keep-me.log reinclui esse arquivo específico. Negações só funcionam para arquivos que uma regra anterior ignorou — não dá para reincluir arquivo dentro de pasta ignorada.

Erros comuns com .gitignore

  • Adicionar .gitignore depois e esperar que arquivos já commitados desapareçam. Não desaparecem — você precisa de git rm -r --cached <caminho> para destrackear.
  • Commitar um .env uma vez. Um único commit deixa o segredo no histórico para sempre. Coloque .env* no .gitignore **antes** do primeiro commit e troque qualquer segredo que tenha escapado.
  • Esquecer o ruído de SO em repos compartilhados. Se um único colega usa macOS e o repo não ignora .DS_Store, esses arquivos vão aparecer em toda PR.

Gerador de .gitignore — Perguntas frequentes

De onde vêm esses templates?
Vêm do projeto open-source github/gitignore — mesma fonte que o GitHub usa quando você marca "adicionar .gitignore" ao criar um repo. Reduzimos cada template às regras que os times realmente usam e agrupamos por categoria.
Devo commitar o próprio arquivo .gitignore?
Sim. O .gitignore foi feito para ser versionado e compartilhado. É o *contrato* sobre o que rastrear ou não. A exceção são preferências pessoais (ex. seu editor) — essas vão no ~/.gitignore_global global.
Como destrackeio um arquivo já commitado?
Primeiro adicione ao .gitignore, depois rode git rm --cached <caminho> (ou git rm -r --cached <pasta>) para remover do índice sem apagar do disco. Commite as duas mudanças juntas para os colegas verem.
Posso ter vários .gitignore no mesmo repo?
Sim. O Git procura um .gitignore em cada diretório e aplica as regras àquele subárvore. Útil em monorepos onde frontend e backend têm regras bem diferentes — regras comuns no root e regras específicas em cada pacote.
Qual a diferença entre .gitignore e .git/info/exclude?
.gitignore é commitado e compartilhado com o time. .git/info/exclude vive só no seu clone local e serve para exclusões pessoais que você não quer pushar. Para exclusões em todos os seus repos, use ~/.gitignore_global.

Outras ferramentas para desenvolvedores

Coddy programming languages illustration

Aprenda a programar com o Coddy

COMEÇAR