| gitmailmap(5) | |
| ============= | |
| NAME | |
| ---- | |
| gitmailmap - Map author/committer names and/or E-Mail addresses | |
| SYNOPSIS | |
| -------- | |
| $GIT_WORK_TREE/.mailmap | |
| DESCRIPTION | |
| ----------- | |
| If the file `.mailmap` exists at the toplevel of the repository, or at | |
| the location pointed to by the `mailmap.file` or `mailmap.blob` | |
| configuration options (see linkgit:git-config[1]), it | |
| is used to map author and committer names and email addresses to | |
| canonical real names and email addresses. | |
| SYNTAX | |
| ------ | |
| The '#' character begins a comment to the end of line, blank lines | |
| are ignored. | |
| In the simple form, each line in the file consists of the canonical | |
| real name of an author, whitespace, and an email address used in the | |
| commit (enclosed by '<' and '>') to map to the name. For example: | |
| -- | |
| Proper Name <commit@email.xx> | |
| -- | |
| The more complex forms are: | |
| -- | |
| <proper@email.xx> <commit@email.xx> | |
| -- | |
| which allows mailmap to replace only the email part of a commit, and: | |
| -- | |
| Proper Name <proper@email.xx> <commit@email.xx> | |
| -- | |
| which allows mailmap to replace both the name and the email of a | |
| commit matching the specified commit email address, and: | |
| -- | |
| Proper Name <proper@email.xx> Commit Name <commit@email.xx> | |
| -- | |
| which allows mailmap to replace both the name and the email of a | |
| commit matching both the specified commit name and email address. | |
| Both E-Mails and names are matched case-insensitively. For example | |
| this would also match the 'Commit Name <commit@email.xx>' above: | |
| -- | |
| Proper Name <proper@email.xx> CoMmIt NaMe <CoMmIt@EmAiL.xX> | |
| -- | |
| NOTES | |
| ----- | |
| Git does not follow symbolic links when accessing a `.mailmap` file in | |
| the working tree. This keeps behavior consistent when the file is | |
| accessed from the index or a tree versus from the filesystem. | |
| EXAMPLES | |
| -------- | |
| 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> | |
| ------------ | |
| SEE ALSO | |
| -------- | |
| linkgit:git-check-mailmap[1] | |
| GIT | |
| --- | |
| Part of the linkgit:git[1] suite |