¿Cómo hago para que git reconozca mailmap a los usuarios sin direcciones de correo electrónico?

Utilizo git y tengo inputs en el map de correo que reasigna las diversas direcciones de correo electrónico que las personas usan con el nombre y el correo electrónico "canónicos" para ese usuario. Sin embargo, también tengo algunos compromisos históricos en los que no hay ningún correo electrónico, sino simplemente un nombre de usuario, como "tommy".

También quiero reasignar estos, al nombre canónico y al correo electrónico para ese usuario, pero no he podido hacerlo. He intentado ambos:

Canonical_name tommy Canonical <canonical@email> tommy <> Canonical tommy <> 

pero ninguno de estos parece tener ningún efecto en absoluto.

Editar para aclarar: no tengo ningún deseo de cambiar la historia. Solo quiero que se muestren los nombres canónicos al imprimir con% aN, que reasigna los nombres usando mailmap. Esto funciona -perfecto- para el caso en que se supone que 3 direcciones de correo electrónico diferentes se asignan a un nombre canónico. Pero no en absoluto para el caso en que el comitter original no proporcionó ninguna dirección de correo electrónico.

Como los commits ya están en el tree, no cambiarán, ¡rompería la integridad de la historia!

Su única opción, si realmente quiere hacer eso, es usar git filter-branch , vea aquí para más detalles. Pero definitivamente alterará su repository, lo que significa que otras personas que usen este mismo repository como base también se verán afectadas.

Puede agregar una dirección de correo electrónico falsa como none@mycompany.com .

Por otro lado, si las personas todavía están en el proyecto, ahora tendrán una dirección de correo electrónico existente. Si ya no están: ¿por qué molestarse con la dirección? Podría tomar una dirección falsa en ese caso …