如何使用git .mailmap显示作者组织?

时间:2015-02-22 01:46:05

标签: git

git使用.mailmap文件来规范作者/提交者的姓名和电子邮件。它是否也可用于显示他们所属的组织?

1 个答案:

答案 0 :(得分:1)

.mailmap 文件将作者姓名和电子邮件映射到单个规范值。例如,如果 .mailmap 包含:

Chendi Xue <chendi.xue@intel.com> Chendi Xue <xuechendi@gmail.com>

git log --pretty =&#39;%aN&lt;%aE&gt;&#39; 命令将显示 Chendi Xue&lt; chendi.xue@intel.com> 而不是 Chendi Xue&lt; xuechendi@gmail.com> 。将作者映射到组织可以在另一个文件中完成,例如 .organizationmap

git check-mailmap 命令(需要git 1.9或更高版本)执行与 .mailmap %aN&lt;%aE&gt; 相同的转换 strong>但是使用任意文件。例如,要显示英特尔组织而不是英特尔附属的作者,可以创建以下 .organizationmap 文件:

Intel <contact@intel.com> Yuan Zhou <yuan.zhou@intel.com>
Intel <contact@intel.com> Chendi Xue <chendi.xue@intel.com>

git log 命令通过管道传输到 git check-mailmap 命令,如下所示:

$ git log --pretty='%aN <%aE>' | \
    git -c mailmap.file=.organizationmap check-mailmap --stdin

然后,可以通过计算行数来显示每个组织的提交排行榜:

$ git log --pretty='%aN <%aE>' | \
    git -c mailmap.file=.organizationmap check-mailmap --stdin | \
    sort | uniq -c | sort -rn | nl
...
6       748 Intel <contact@intel.com>
7       361 University of California, Santa Cruz <contact@cs.ucsc.edu>
8       248 UnitedStack <contact@unitedstack.com>
...

其中第一列是组织的排名,第二列是提交的数量。