Gerador de .gitignore — modelos para todas as linguagens e IDEs
Combine modelos de .gitignore para linguagens, frameworks, editores e sistemas operacionais em um único arquivo limpo.
### Node.js ### # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* lerna-debug.log* .pnpm-debug.log* # Runtime data pids *.pid *.seed *.pid.lock # Coverage coverage *.lcov .nyc_output # Dependencies node_modules/ jspm_packages/ bower_components # Caches .npm .eslintcache .stylelintcache .cache .parcel-cache *.tsbuildinfo .node_repl_history *.tgz # Yarn .yarn/cache .yarn/unplugged .yarn/build-state.yml .yarn/install-state.gz .pnp.* # Environment .env .env.* !.env.example # Build output dist build out ### macOS ### # General .DS_Store .AppleDouble .LSOverride # Custom folder icons (the real file name is "Icon" followed by a carriage return) Icon? # Thumbnails ._* # Files that might appear in the root of a volume .DocumentRevisions-V100 .fseventsd .Spotlight-V100 .TemporaryItems .Trashes .VolumeIcon.icns .com.apple.timemachine.donotpresent # Directories potentially created on remote AFP share .AppleDB .AppleDesktop Network Trash Folder Temporary Items .apdisk ### Windows ### # Windows thumbnail cache files Thumbs.db Thumbs.db:encryptable ehthumbs.db ehthumbs_vista.db # Dump file *.stackdump # Folder config file [Dd]esktop.ini # Recycle Bin used on file shares $RECYCLE.BIN/ # Windows Installer files *.cab *.msi *.msix *.msm *.msp # Windows shortcuts *.lnk ### Visual Studio Code ### .vscode/* !.vscode/settings.json !.vscode/tasks.json !.vscode/launch.json !.vscode/extensions.json !.vscode/*.code-snippets # Local History for Visual Studio Code .history/ # Built Visual Studio Code Extensions *.vsix
Os navegadores costumam salvar um arquivo que começa com ponto como “gitignore.txt”; renomeie-o exatamente para .gitignore na raiz do projeto.
Funciona inteiramente no seu navegador. Os modelos vêm junto com a página; nada é buscado nem enviado. Ver todas as ferramentas grátis.
Encontrou um problema ou algo que poderia ser melhor? Lemos todas as mensagens e corrigimos rápido.
Este gerador de .gitignore monta um arquivo .gitignore a partir de modelos para as linguagens, frameworks, editores e sistemas operacionais do seu projeto. Escolha Node.js, Python, Unity, JetBrains, macOS ou qualquer um dos mais de 60 outros, ou comece por uma stack como “App Next.js”, e os modelos são combinados em um único arquivo com um cabeçalho por seção. Padrões que aparecem em mais de um modelo são escritos uma só vez.
Os modelos foram escritos a partir da coleção github/gitignore, amplamente usada, sem os blocos longos de comentários, e vêm embutidos na página, então ela funciona offline e nada sobre o seu projeto é enviado a lugar nenhum. A remoção de duplicatas é feita com cuidado, porque a ordem importa no .gitignore: depois que um modelo reinclui algo com uma regra “!”, as duplicatas seguintes são mantidas, para não arriscar mudar o que é ignorado. Um .gitignore só afeta arquivos não rastreados; veja nas perguntas frequentes o que fazer com arquivos que o Git já rastreia.
Como usar
- Clique em uma stack de “Início rápido” ou pesquise os modelos e marque os que o seu projeto usa: linguagem, framework, editor e sistema operacional.
- Remova os que não precisar com o × no respectivo marcador.
- Acrescente regras específicas do projeto, como uma pasta uploads/, em “Suas próprias regras”.
- Copie o resultado, ou baixe-o e salve como .gitignore na raiz do repositório.
- Faça o commit: git add .gitignore && git commit -m "Add .gitignore".
Perguntas frequentes
Por que um arquivo continua rastreado depois que o adicionei ao .gitignore?
Um .gitignore só impede que arquivos não rastreados sejam adicionados. Se o Git já rastreia o arquivo, continua rastreando. Remova-o do índice sem apagá-lo do disco com git rm --cached caminho/do/arquivo (ou git rm -r --cached pasta/) e depois faça o commit. Se ele continha um segredo, o segredo ainda está no histórico e deve ser trocado.
Devo fazer commit do arquivo .gitignore?
Sim. Ele pertence ao repositório, para que todos que clonarem o projeto ignorem as mesmas pastas de build e de dependências. Regras que só valem para você, como os arquivos do seu editor, podem ir em .git/info/exclude para um repositório ou em um arquivo de ignore global definido com git config --global core.excludesFile ~/.gitignore_global.
O package-lock.json ou o yarn.lock devem ser ignorados?
Não; em aplicativos, faça commit do arquivo de lock. Ele registra as versões exatas das dependências que foram testadas, então toda instalação e toda execução de CI obtém a mesma árvore. O mesmo vale para poetry.lock, Pipfile.lock, Cargo.lock em binários, Gemfile.lock e composer.lock. Nenhum dos modelos daqui os ignora.
O que os padrões significam?
Uma barra no final (build/) corresponde só a diretórios. Uma barra no início (/build) prende o padrão ao diretório que contém o .gitignore. * corresponde a qualquer coisa exceto uma barra, ** atravessa diretórios (logs/**/*.log) e ? corresponde a um caractere. Uma linha que começa com ! reinclui algo que um padrão anterior excluiu, e # inicia um comentário, mas só no começo da linha.
Por que a minha regra de negação (!) não funciona?
O Git não consegue reincluir um arquivo se um dos diretórios pais dele estiver excluído, porque nunca olha dentro de um diretório ignorado. Em vez de ignorar a pasta (logs/), ignore o conteúdo dela (logs/*) e depois reinclua o arquivo (!logs/.gitkeep). A ordem também importa: a linha com ! precisa vir depois do padrão que ela sobrepõe.
Consigo verificar por que um arquivo está sendo ignorado?
Sim: git check-ignore -v caminho/do/arquivo mostra o arquivo .gitignore, o número da linha e o padrão que correspondeu. git status --ignored lista todos os arquivos ignorados na árvore de trabalho.
O que deve ir em um .gitignore
• Dependências que um gerenciador de pacotes reinstala: node_modules/, vendor/, .venv/, Pods/.
• Saída de build e caches: dist/, build/, target/, .next/, __pycache__/, *.class, relatórios de cobertura.
• Segredos locais e arquivos de ambiente: .env, *.pem, JSON de credenciais. Em vez deles, faça commit de um .env.example com valores de exemplo.
• Sujeira de editor e de sistema operacional: .DS_Store, Thumbs.db, .idea/, a maior parte de .vscode/.
• Logs, dumps de falhas e bancos de dados locais: *.log, *.sqlite (a menos que o banco seja uma fixture proposital).
Mantenha no repositório: código-fonte, arquivos de lock, configurações de que todo desenvolvedor precisa e configurações de editor compartilhadas, como .vscode/extensions.json, que o modelo do VS Code reinclui de propósito.
Onde o Git procura regras de ignore
O Git combina várias fontes, da maior para a menor prioridade: padrões passados na linha de comando; arquivos .gitignore no mesmo diretório do caminho e depois em cada diretório pai até a raiz do repositório (um .gitignore em um subdiretório só vale dali para baixo); .git/info/exclude, que é local e nunca vai para o commit; e o arquivo global indicado por core.excludesFile, que por padrão é ~/.config/git/ignore. Coloque regras de sistema operacional e de editor no arquivo global se preferir que o .gitignore de cada projeto trate só do projeto.
Ferramentas grátis relacionadas
- Calculadora chmod — Marque as caixas de Leitura, Escrita e Execução para obter o modo octal e o comando chmod, ou decodifique 755, 644 e rwxr-xr-x.
- Docker Run ⇄ Compose — Transforme um comando docker run num serviço do docker-compose.yml, ou um serviço do Compose de volta em docker run.
- Testador de regex — Teste uma expressão regular num texto de exemplo, com destaque das correspondências ao vivo, grupos de captura e prévia de substituição. Grátis, no navegador.
- Formatador de JSON — Formate, minifique e valide JSON, com erros de parsing localizados por linha e coluna. No seu navegador, sem upload.