1001Ferramentas
🔍 Dev

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.

Arquivo .git-blame-ignore-revs:

Habilite com: git config blame.ignoreRevsFile .git-blame-ignore-revs

Tirar o commit de formatação do caminho do blame

Rodar um formatador em todo o projeto resolve um problema e cria outro: o blame passa a apontar para o commit de formatação em vez de para quem escreveu a linha. Um arquivo inteiro de autoria aparente de uma pessoa que só rodou o Prettier é ruído puro, e o histórico perde justamente a informação que faz o blame existir.

O Git resolve isso com um arquivo que lista os commits a ignorar. Cole os hashes, um por linha, opcionalmente com uma descrição depois — a página monta o arquivo com a descrição virando comentário acima de cada hash, que é a convenção usada. Salve como .git-blame-ignore-revs na raiz do repositório.

Falta um passo que quase todo mundo esquece: o arquivo não é usado automaticamente. É preciso apontá-lo na configuração com git config blame.ignoreRevsFile .git-blame-ignore-revs — e cada pessoa da equipe precisa rodar isso na sua cópia, porque configuração não viaja com o repositório. Compensa colocar o comando no README ou no script de preparação do ambiente. GitHub e GitLab, por outro lado, respeitam o arquivo automaticamente quando ele existe.

Perguntas frequentes

Preciso do hash completo?
Sim, de quarenta caracteres. O Git recusa hash abreviado nesse arquivo e falha com erro em vez de ignorar em silêncio. Use git rev-parse HEAD ou copie da saída do log com o formato completo.
O que acontece se o commit não existir?
Por padrão o Git reclama e o blame falha. Isso costuma acontecer depois de um rebase que reescreveu os hashes listados. Existe a configuração blame.markIgnoredLines para tratar de forma mais tolerante, mas o certo é manter o arquivo atualizado quando o histórico é reescrito.
Serve para qualquer commit que eu queira esconder?
Tecnicamente sim, mas o uso legítimo é para mudanças que não alteram comportamento: formatação em massa, troca de aspas, renomeação mecânica, atualização de licença em cabeçalho. Usar para esconder autoria de mudança real desvirtua a ferramenta e confunde quem investiga um bug.

Ferramentas Relacionadas