git使用.mailmap文件来规范作者/提交者的姓名和电子邮件。它是否也可用于显示他们所属的组织?
答案 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>
...
其中第一列是组织的排名,第二列是提交的数量。