1001Ferramentas
📧 Dev

Gerador de .mailmap (Git)

Mapeia nomes e e-mails inconsistentes em um único autor no Git, melhorando estatísticas e shortlog. Formato oficial.

.mailmap:

.mailmap: uma pessoa, vários e-mails, um nome só

Quem contribui por anos acumula identidades: o e-mail pessoal do começo, o corporativo depois, o do GitHub sem domínio, o nome escrito de três formas. Nas estatísticas do repositório isso vira uma pessoa contada quatro vezes, cada uma com uma fatia dos commits. O .mailmap corrige isso na apresentação, sem tocar em um único commit.

Cole os mapeamentos e a página valida cada linha e normaliza o espaçamento. São quatro formas aceitas, todas partindo do que se quer mostrar e terminando no que está gravado no commit: só o nome corrigido; só o e-mail; nome e e-mail corrigidos a partir do e-mail antigo; e a forma completa, que casa nome e e-mail antigos ao mesmo tempo. Linha malformada é apontada com o motivo em vez de passar despercebida.

É importante saber onde o arquivo age e onde não age. Ele é lido por git shortlog, git log, git blame e pelas ferramentas de estatística — a apresentação muda. Os objetos de commit continuam com os dados originais, e o hash não muda. Salve como .mailmap na raiz e comite: diferente da configuração de blame, este arquivo viaja com o repositório e vale para todo mundo automaticamente.

Perguntas frequentes

Por que minha linha foi ignorada pelo Git?
Quase sempre por formato: e-mail sem os sinais de menor e maior, texto sobrando fora deles, ou espaço dentro do endereço. O Git não reclama — apenas ignora a linha, e você descobre pelo resultado que não mudou. É justamente esse silêncio que a validação desta página cobre.
A ordem das partes é qual?
Sempre da identidade correta para a antiga: primeiro o nome e o e-mail que devem aparecer, depois o que está gravado no commit. Inverter é o erro mais comum, e o efeito é o oposto do desejado — os commits corretos passam a aparecer sob a identidade antiga.
Funciona no GitHub?
A contagem de contribuições do perfil não usa o .mailmap; ela se baseia no e-mail associado à conta. O arquivo afeta o que o Git mostra localmente e o que ferramentas de análise de repositório calculam. Para consolidar contribuições no perfil, o caminho é acrescentar os e-mails antigos à conta.

Ferramentas Relacionadas