HeadlinesBriefing favicon HeadlinesBriefing.com

Três arquivos de Git ignore que você não conhecia

Hacker News •
×

Durante anos carreguei arquivos não rastreados em repositórios — notas em markdown, planos de agente — porque adicioná-los ao .gitignore parecia sujo. Então Claude sugeriu usar .git/info/exclude, revelando que o git realmente lê padrões de ignorância de três locais com sintaxe idêntica.

Primeiro, .gitignore em qualquer diretório afeta todos que clonam o repositório e é commitado — ideal para saída de build como target/ ou __pycache__/. Segundo, .git/info/exclude afeta apenas seu clone, nunca é commitado e fica dentro de .git, tornando-o à prova de acidentes. Perfeito para arquivos pessoais temporários. Terceiro, um arquivo de exclusão global (padrão ~/.config/git/ignore) se aplica a cada repositório na sua máquina — ótimo para bagunça de editores como .idea/, .vscode/, .DS_Store.

O uso é simples: adicione os padrões diretamente. Por repositório: `echo 'plans/' >> .git/info/exclude`. Para worktrees vinculados, use `$(git rev-parse --git-common-dir)/info/exclude`. Globalmente: crie ~/.config/git/ignore e adicione padrões, ou configure um caminho personalizado com `git config --global core.excludesFile ~/.gitignore_global`. As alterações têm efeito imediato em `git status` para arquivos não rastreados.

Observação: O Claude Code exclui por padrão arquivos ignorados do @-autocomplete, então os planos desaparecem do seletor assim que são adicionados a .git/info/exclude.

Entidades-chave: Empresas: Claude, Claude Code | Locais: ~/.config/git/ignore, $XDG_CONFIG_HOME/git/ignore

Perguntas frequentes: Qual é a diferença entre .gitignore e .git/info/exclude?

.gitignore é commitado e compartilhado com todos que clonam o repositório, enquanto .git/info/exclude é local ao seu clone apenas e nunca pode ser commitado acidentalmente.