gitmailmap(5) (original) (raw)

Your history contains commits by two authors, Jane and Joe, whose names appear in the repository under several forms:

Joe Developer joe@example.com Joe R. Developer joe@example.com Jane Doe jane@example.com Jane Doe <jane@laptop.(none)> Jane D. <jane@desktop.(none)>

Now suppose that Joe wants his middle name initial used, and Jane prefers her family name fully spelled out. A .mailmap file to correct the names would look like:

Joe R. Developer joe@example.com Jane Doe jane@example.com Jane Doe <jane@desktop.(none)>

Note that there’s no need to map the name for <jane@laptop.(none)> to only correct the names. However, leaving the obviously broken_<jane@laptop.(none)>_ and <jane@desktop.(none)> E-Mails as-is is usually not what you want. A .mailmap file which also corrects those is:

Joe R. Developer joe@example.com Jane Doe jane@example.com <jane@laptop.(none)> Jane Doe jane@example.com <jane@desktop.(none)>

Finally, let’s say that Joe and Jane shared an E-Mail address, but not a name, e.g. by having these two commits in the history generated by a bug reporting system. I.e. names appearing in history as:

Joe bugs@example.com Jane bugs@example.com

A full .mailmap file which also handles those cases (an addition of two lines to the above example) would be:

Joe R. Developer joe@example.com Jane Doe jane@example.com <jane@laptop.(none)> Jane Doe jane@example.com <jane@desktop.(none)> Joe R. Developer joe@example.com Joe bugs@example.com Jane Doe jane@example.com Jane bugs@example.com