• Contenu
  • Bas de page
blog-ouidou_logoblog-ouidou_logoblog-ouidou_logoblog-ouidou_logo
  • Actualités Ouidou
  • Articles Techniques
  • Livres blancs
  • Interviews Clients
  • Interviews collaborateurs
Découvrir Ouidou
✕
No results See all results
3 risques informatiques pour votre entreprise

3 risques informatiques pour votre entreprise

24 novembre 2020
Le TDD, cet éternel incompris

Le TDD, cet éternel incompris

11 décembre 2020
Ressources > Git mailmap ou comment identifier les contributeurs d’un projet

Git mailmap ou comment identifier les contributeurs d’un projet

Article écrit par François Vantomme

Vous êtes-vous déjà demandé, après avoir lancé un git blame sur un fichier, qui est le collègue qui se cache derrière cet obscur pseudo ? Vous est-il déjà arrivé de pousser un commit avec une mauvaise configuration ou depuis la mauvaise machine ?

❯ git blame README.md 53e6ebfb (Mr Robot 2020-11-03 10:13:42 +0200  1) # Read me ... 

Lorsque l’on travaille sur un projet dont le code est versionné avec Git, il est recommandé de définir son nom et son adresse email :

git config user.name "Ada Lovelace" git config user.email "alovelace@cam.ac.uk" 

Ceci peut être fait à l’échelle d’un projet, comme ici, ou de manière globale en ajoutant l’option --global aux commandes ci-dessus. Ce qui en résultera, c’est que vos informations seront stockées dans un fichier ~/.gitconfig, dans votre répertoire personnel donc, plutôt que dans un fichier .gitconfig à la racine du projet. Et pour connaître les valeurs associées à une clé, l’option --get-all est disponible.

❯ git config --local user.email alovelace@cam.ac.uk  ❯ git config --global user.email alovelace@example.org  ❯ git config --get-all user.email alovelace@example.org alovelace@cam.ac.uk 

Seulement voilà, parfois, par mégarde, on pousse un commit avec la mauvaise configuration et on se retrouve avec ceci dans les logs de Git :

Merge branch 'draft/dont-repeat-yourself' into 'master'  Commit: acfb98ff6bf4743ae9788cb530b1a482bf88fff5 Author: Ada <alovelace@alovelace-cambridge-univ.local> Date:   2020-07-02 14:32:58 +0200 (il y a 4 mois) 

Et évidemment, le temps qu’on s’en rende compte, il n’est plus question de réécrire l’arbre des commits ! Alors que faire ?

Rien. Ce n’est pas si grave, tu peux laisser ça comme ça !
— un lecteur qui a déjà oublié le sujet de l’article

En effet, il n’y a pas péril en la demeure, mais…

  • ça brouille la lecture des statistiques
  • ça peut rendre git blame assez cryptique
  • ça nous empêche de savoir à quelle adresse contacter un contributeur
❯ git shortlog -sne    267  Augusta Ada King, Countess of Lovelace <alovelace@example.org>    ...    130  Ada Lovelace <alovelace@cam.ac.uk>    ...     32  Augusta Ada King <ada.lovelace@example.org> 
❯ git blame dont_repeat_yourself.md ... acfb98ff (Ada Lovelace 1843-07-02 14:32:58 +0200  52) acfb98ff (Ada Lovelace 1843-07-02 14:32:58 +0200  53) 984e8d96 (alovelace    1843-07-02 14:30:37 +0200  54) 984e8d96 (alovelace    1843-07-02 14:30:37 +0200  55) ... 

Mailmap à la rescousse !

Sachez que rien n’est perdu ! Pour pallier cette situation, Git nous offre la possibilité de déclarer un fichier .mailmap dans lequel nous pourrons déclarer le nom et l’adresse email de chaque contributeur.

Il s’agit d’un simple fichier à plat dont voici le format attendu pour chaque ligne :

Prénom Nom <prenom.nom@example.com>   Pseudo <pseudo@example.org> 

Il s’agit donc de déclarer les coordonnées attendues, suivies de celles à remplacer. Ici, on voudra donc remplacer toute occurrence de Pseudo <pseudo@example.org> par Prénom Nom <prenom.nom@example.com>.

Il est aussi possible de ne déclarer que la première partie. Cela peut être suffisant, par exemple, quand seul le nom d’un contributeur change d’un commit à l’autre, mais que son adresse email reste la même.

Pour nous assurer que notre fichier .mailmap est pris en compte comme attendu, Git nous met à disposition une petite commande :

❯ git check-mailmap "<pseudo@example.org>" Prénom Nom <prenom.nom@example.com> 

Si l’on reprend les exemples ci-dessus, nous pourrions écrire ce .mailmap :

Ada Lovelace <alovelace@cam.ac.uk> <alovelace@example.org> Ada Lovelace <alovelace@cam.ac.uk> <ada.lovelace@example.org> 

Notez que je n’ai pas précisé le nom associé à l’adresse email à remplacer ! Cela signifie que, peu importe le nom associé à cette adresse, on souhaite utiliser le nom déclaré en début de ligne.

Et nos problèmes sont ainsi résolus !

❯ git shortlog -sne    429  Ada Lovelace <alovelace@cam.ac.uk>    ... 
❯ git blame dont_repeat_yourself.md ... acfb98ff (Ada Lovelace 2020-07-02 14:32:58 +0200  52) acfb98ff (Ada Lovelace 2020-07-02 14:32:58 +0200  53) 984e8d96 (Ada Lovelace 2020-07-02 14:30:37 +0200  54) 984e8d96 (Ada Lovelace 2020-07-02 14:30:37 +0200  55) ... 

Voilà, c’était un petit article sans prétention pour vous présenter une fonctionnalité méconnue de Git. J’espère que cette pastille vous a plu ! Et si vous êtes curieux, n’hésitez pas à faire un tour sur la documentation officielle de Git qui traite précisément de ce sujet.

À lire aussi

Diagnostiquer, comprendre et optimiser les performances d’une application React
4 mai 2026

Diagnostiquer, comprendre et optimiser les performances d’une application React

Lire la suite de l'article

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation
15 avril 2026

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation

Lire la suite de l'article

Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe
8 avril 2026

Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe

Lire la suite de l'article

Replay webinaire Ouidou x Sonar
2 juillet 2026

Replay webinaire Ouidou x Sonar

Lire la suite de l'article

Articles associés

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation
15 avril 2026

Ouicommit Paris – IA : de l’expérimentation à l’industrialisation


Lire la suite
Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe
8 avril 2026

Ouidou et Scaleway : un partenariat stratégique pour accélérer le cloud souverain en Europe


Lire la suite
Comment préparer votre Jira Cloud dès maintenant ? 
14 novembre 2025

Comment préparer votre Jira Cloud dès maintenant ? 


Lire la suite
Replay webinaire IA
5 novembre 2025

Replay webinaire IA


Lire la suite
  • Linkedin Ouidou
  • Youtube Ouidou

Blog Ouidou, le rendez-vous des équipes tech qui veulent comprendre avant de décider. Veille, retours d'expérience et décryptages pour rester à la pointe.

© 2026 Ouidou | Tous droits réservés | Plan du site | Mentions légales | Déclaration d'accessibilité
    Découvrir Ouidou
    No results See all results