.gitignore — O arquivo que te salva de commitar node_modules
Um guia prático para .gitignore: o que faz, como funciona a sintaxe, padrões comuns para node_modules e arquivos .env, e a armadilha já rastreada que captura todos os desenvolvedores.
Todo desenvolvedor já o fez pelo menos uma vez: commitar acidentalmente node_modules, a .env arquivo cheio de chaves de API, ou um artefato de build de 200MB. A ansiedade é real. A solução é tediosa. E tudo isso poderia ter sido evitado com um único arquivo: .gitignore.
Este guia explica o que .gitignore é, como funciona, o que colocar nele e algumas armadilhas que capturam até desenvolvedores experientes.
O que é .gitignore?
.gitignore é um arquivo de texto simples que informa o Git quais arquivos e diretórios devem ser excluídos do controle de versão. Quando o Git vê um caminho listado em .gitignore, ele fingirá que esse caminho não existe — ele não o colocará em staging, nem o cometerá, nem o mostrará no git status saída.
O arquivo fica na raiz do seu repositório, embora você também possa colocar arquivos específicos do projeto em subdiretórios. As regras em um arquivo de subdiretório se aplicam apenas a esse diretório e seus filhos. .gitignore Por que você precisa de um (a versão curta)
— mantém segredos, chaves de API e senhas fora do seu histórico do git
- Segurança Tamanho do repositório
- — evita que arquivos gerados e dependências enrijam seu repositório Redução de ruído
- — evita que arquivos de configuração do editor e lixo do sistema operacional enchem todas as diferenças Saneidade da equipe
- — todos clonam um repositório limpo e instalam dependências localmente Como funciona a sintaxe
As regras são simples, mas têm alguns detalhes não evidentes:
Linhas em branco e linhas que começam com
- são ignoradas (use
#para comentários)#Um padrão sem barra - corresponde a qualquer arquivo ou diretório com esse nome em qualquer lugar do repositório: ignora todos os arquivos de log em qualquer nível
*.logUma barra no final - corresponde apenas a diretórios: ignora o diretório, mas não um arquivo chamado
dist/Uma barra no iníciodist - ancla o padrão na raiz do repositório: ignora apenas um
/todo.txtna raiz exatatodo.txtDois asteriscos ( - corresponde acima das fronteiras de diretório:
**) em qualquer parte da árvore**/logscoincidemlogs/O sinal de exclamação ( - negativa um padrão, re-incluindo um arquivo que uma regra anterior excluiu
!) Exemplo mínimo
As entradas mais comuns (e por que são importantes)
# Dependencies
node_modules/
# Environment files
.env
.env.local
.env.*.local
# Build output
dist/
build/
# Editor noise
.vscode/
.idea/
*.swp
# OS files
.DS_Store
Thumbs.db
# Logs
*.log
npm-debug.log*
node_modules/
Este é o grande. Um projeto típico em Node.js tem milhares de arquivos em
— muitas vezes centenas de megabytes. Nenhum desses arquivos pertence ao controle de versão. Qualquer pessoa que clonar seu repositório executará node_modules/ e recompilará localmente a partir de npm install . Ignore sempre. package.json.env e arquivos de segredos
Arquivos de ambiente contêm senhas de banco de dados, chaves de API e tokens de serviço. Um arquivo commitado é um incidente de segurança esperado — o GitHub detecta segredos vazados, mas também bots. Ignore o arquivo e comita um
com valores de placeholder em vez disso, para que os colegas saibam quais variáveis devem ser definidas. .env dist/ e build/ .env.example O resultado compilado ou bundle é derivado do código-fonte. Seu pipeline CI o reconstrói em cada deploy. Cometer artefatos de build cria conflitos de merge e diffs falsos que obscurecem mudanças reais no código.
Arquivos do editor e do sistema operacional
(macOS),
(Windows),
.DS_Store (JetBrains), Thumbs.db (configurações do VS Code) — esses são arquivos de workspace pessoais. Cometer eles força suas preferências em todos os outros contribuidores. Use um arquivo global .idea/ para o ruído específico da máquina, assim você não terá que adicioná-lo a cada projeto. .vscode/ .gitignore global: Configure uma vez, esqueça ~/.gitignore_global Você pode configurar um arquivo de ignorar global que se aplica a todos os repositórios em sua máquina:
Coloque arquivos do editor, lixo do sistema operacional e ferramentas pessoais lá. Reservar o projeto
para coisas que toda a equipe concorda em ignorar — como
git config --global core.excludesfile ~/.gitignore_global
A armadilha dos já rastreados .gitignore É aqui que os desenvolvedores são prejudicados: node_modules/ ou dist/.
apenas previne
arquivos não rastreados .gitignore de serem adicionados. Se um arquivo já está no seu histórico do git, adicioná-lo a não faz nada. O git continua rastreando e ainda assim cometerá alterações nele. Para parar de rastrear um arquivo já commitado: .gitignore Após isso, o arquivo permanece no disco, mas o git ignorará a partir daí.
Regras de negação: re-inclusão de arquivos
# Remove the file from git tracking without deleting it locally
git rm --cached path/to/file
# Or remove a whole directory
git rm -r --cached node_modules/
# Then commit the removal
git commit -m "Stop tracking node_modules"
Às vezes você quer ignorar um diretório, exceto por um arquivo específico — por exemplo, ignorar
mas manter
commitado: config/ Um detalhe: a negação não pode desativar um arquivo dentro de um diretório ignorado. O git para de descer em diretórios ignorados, então a regra config/defaults.json nunca tem chance de ativar. Você precisa ignorar o conteúdo em vez de ignorar o diretório em si:
config/
!config/defaults.json
Gerar um .gitignore para sua pilha ! Você não precisa escrever do zero.
# Wrong — Git never sees defaults.json inside an ignored directory
config/
!config/defaults.json
# Right — ignore everything in config/ except defaults.json
config/*
!config/defaults.json
gitignore.io
(também em ) permite que você escolha seu idioma, framework e editor e gera um arquivo de ignorar completo instantaneamente. O GitHub também oferece modelos oficiais em seu repositório github/gitignore gitignore.io— esses são bem mantidos e cobrem centenas de ambientes. Para a maioria dos projetos web, um ponto de partida sólido combina modelos para seu idioma (Node, Python, PHP, etc.), seu editor (VS Code, JetBrains) e seu sistema operacional (macOS, Windows). Verificando o que o Git está ignorando
Dois comandos ajudam a depurar uma regra de ignorar inesperada:
é especialmente útil quando uma regra não está funcionando como esperado — exibe o arquivo, número de linha e padrão responsável.
Referência rápida: Folha de resumo de padrões
# See which files are being ignored in the current directory
git status --ignored
# Find out exactly which rule is causing a file to be ignored
git check-ignore -v path/to/file
git check-ignore -v O que ele ignora
arquivos em qualquer lugar
| Padrão | apenas |
|---|---|
*.log | Todos .log na raiz |
/debug.log | Qualquer diretório chamado debug.log diretório em qualquer nível |
logs/ | Re-incluir logs |
**/logs | logs mesmo se |
!important.log | o corresponder important.log arquivos diretamente dentro de *.log (não subdiretórios) |
doc/*.txt | .txt arquivos em qualquer lugar sob doc/ .gitignore — O arquivo que te salva de cometer node_modules 2 |
doc/**/*.txt | .txt .gitignore — O arquivo que te salva de cometer node_modules 1 doc/ |
Instale nossas extensões
Adicione ferramentas de IO ao seu navegador favorito para acesso instantâneo e pesquisa mais rápida
恵 O placar chegou!
Placar é uma forma divertida de acompanhar seus jogos, todos os dados são armazenados em seu navegador. Mais recursos serão lançados em breve!
Ferramentas essenciais
Ver tudo Novas chegadas
Ver tudoAtualizar: Nosso ferramenta mais recente foi adicionado em Abr 30, 2026
