## 名称

git-check-mailmap - 显示联系人的规范名称和电子邮件地址

## 概要

    git check-mailmap [options] <contact>…

## 描述

对于命令行或标准输入（使用时`--stdin`）中的每个“Name user @ host”或“user @ host” ，请查找此人的规范名称和电子邮件地址（请参阅下面的“映射作者”）。如果找到，打印出来；否则按原样打印输入。

## 选项

--stdin

在耗尽命令行中提供的联系人之后，从标准输入读取每行一个联系人。

## 输出

对于每个联系人，输出一行，以换行符结尾。如果名称被提供或已知`mailmap`，则打印“名称用户@主机”; 否则只打印“user @ host”。

## 映射作者

如果文件`.mailmap`存在于版本库的顶层，或者位于 mailmap.file 或 mailmap.blob 配置选项指向的位置，则它用于将作者和提交者名称以及电子邮件地址映射到规范的实名和电子邮件地址。

在简单的形式中，文件中的每一行由作者的标准真实姓名，空格以及在提交中使用的电子邮件地址（用`<`and 括起来`>`）映射到名称。例如：

    Proper Name <commit@email.xx>

更复杂的形式是：

    <proper@email.xx> <commit@email.xx>

它允许 mailmap 只替换提交的电子邮件部分，并且：

    Proper Name <proper@email.xx> <commit@email.xx>

它允许 mailmap 替换与指定的提交电子邮件地址匹配的提交的名称和电子邮件，以及：

    Proper Name <proper@email.xx> Commit Name <commit@email.xx>

它允许 mailmap 替换与指定的提交名称和电子邮件地址相匹配的提交的名称和电子邮件。

示例1：您的历史记录包含两位作者 Jane 和 Joe 的提交，他们的名字以几种形式出现在存储库中：

    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)>

现在假设乔想让他的中间名得到最初的使用，而珍则更喜欢将她的姓氏完整地拼出来。一个合适的`.mailmap`文件应该是这样的：

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

注意如何不需要输入`<jane@laptop.(none)>`，因为该作者的真实姓名已经是正确的。

示例2：您的存储库包含以下作者的提交：

    nick1 <bugs@company.xx>nick2 <bugs@company.xx>nick2 <nick2@company.xx>santa <me@company.xx>claus <me@company.xx>CTO <cto@coompany.xx>

那么你可能需要一个如下所示的`.mailmap`文件：

    <cto@company.xx>                       <cto@coompany.xx>Some Dude <some@dude.xx>         nick1 <bugs@company.xx>Other Author <other@author.xx>   nick2 <bugs@company.xx>Other Author <other@author.xx>         <nick2@company.xx>Santa Claus <santa.claus@northpole.xx> <me@company.xx>

将散列`#`用于自己的行中或电子邮件地址之后的注释。