Gerador de .gitignore: templates oficiais combinados, não regras inventadas
Este gerador não inventa regras de exclusão — ele combina os templates
oficiais mantidos pela comunidade no repositório
github/gitignore, o mesmo conjunto de referência usado pelo
próprio GitHub ao oferecer um .gitignore inicial na criação
de um repositório. Cada linguagem, framework ou editor (Node, Python,
Java, Go, Rust, PHP, Laravel, VS Code, JetBrains, e outros) tem seu
próprio arquivo de template, mantido e atualizado por quem realmente
trabalha com aquela stack — não uma lista genérica de extensões de
arquivo comuns, que rapidamente fica desatualizada conforme
ferramentas e frameworks evoluem.
Por que combinar múltiplos templates precisa de deduplicação
Um projeto real frequentemente precisa de mais de um template
simultaneamente — por exemplo, Node.js (para o código) mais VS Code
(para configuração de editor) mais macOS (para arquivos de sistema
específicos do SO de quem desenvolve). Alguns padrões de exclusão se
repetem entre templates (*.log aparece em vários), e
concatenar os arquivos sem tratamento produziria um
.gitignore funcionalmente correto, mas com linhas
duplicadas — não um erro fatal para o Git (regras repetidas não têm
efeito colateral negativo), mas um arquivo mais longo e menos legível
do que necessário. Este gerador combina os templates selecionados e
remove duplicatas antes de apresentar o resultado final.
Por que um .gitignore genérico nunca cobre 100% de um projeto real
Templates de linguagem e framework cobrem os padrões comuns e
previsíveis (diretórios de dependência, arquivos de build, cache de
ferramentas) — mas nunca vão cobrir arquivos específicos do seu projeto
particular: um script de configuração local com credenciais, uma pasta
de dados de teste gerada por um processo interno, um arquivo de
ambiente com nome não-padrão. O .gitignore gerado aqui é
um ponto de partida sólido e atualizado, não uma garantia de cobertura
completa — revisar e adicionar entradas específicas do projeto continua
sendo necessário, especialmente entradas relacionadas a segredos e
credenciais, que nunca devem depender só de um template genérico para
ficar de fora do controle de versão.