Gerador de .gitattributes
Gera .gitattributes para normalizar line endings, marcar binários, configurar diff e linguagem da estatística do GitHub (linguist).
—
O arquivo que decide como o Git trata cada tipo de arquivo
O .gitattributes é menos conhecido que o .gitignore e resolve outra classe de problema. Enquanto o ignore diz o que não entra no repositório, o attributes diz como o Git deve tratar o que já entrou: quais arquivos são texto e podem ter a quebra de linha normalizada, quais são binários e não devem ser comparados linha a linha, e quais devem ficar de fora da estatística de linguagens.
Marque as opções que fazem sentido para o projeto e a página monta o arquivo. A regra mais valiosa costuma ser a primeira: text=auto eol=lf normaliza a quebra de linha para LF dentro do repositório, independentemente do sistema de quem commita. Isso encerra o clássico diff que mostra o arquivo inteiro modificado só porque alguém abriu num editor do Windows.
As demais opções cuidam de imagem, PDF e áudio, marcados como binários para o Git não tentar montar diff nem mesclar conteúdo; de pastas de dependência e de saída de build, marcadas como vendored e generated para não distorcerem a barra de linguagens do GitHub; e de documentação, marcada como tal. Salve o resultado como .gitattributes na raiz. Em arquivos já commitados com CRLF, é preciso rodar git add --renormalize . uma vez para a mudança valer.
Perguntas frequentes
Qual a diferença entre text=auto e core.autocrlf?
Marcar como binary muda o arquivo?
Para que serve linguist-vendored?
Ferramentas Relacionadas
Resolvedor de Conflito de Merge do Git
Separa um arquivo com marcadores de conflito do Git em versões ours e theirs, permite escolher o lado de cada bloco e monta o arquivo final.
Git Cheatsheet
Lista pesquisável dos comandos git mais usados — config, commit, branch, merge, rebase, stash, log, remote, reset. Com exemplos copiáveis e descrição. Tudo no navegador.
Gerador de Aliases do Git
Lista de aliases git úteis (st, co, br, lg, undo, save, wip, amend, hist) prontos para colar no .gitconfig.
Gerador de .mailmap (Git)
Mapeia nomes e e-mails inconsistentes em um único autor no Git, melhorando estatísticas e shortlog. Formato oficial.
Gerador de .gitignore
Gere um .gitignore combinando templates por linguagem/IDE — Node, Python, Java, Go, Rust, .DS_Store, JetBrains, VSCode etc. Tudo no navegador.
Gerador de .git-blame-ignore-revs
Lista de hashes de commits para o Git ignorar no blame (formatadores em massa, prettier, black, eslint --fix). Útil em refactors grandes.