设置和配置
获取和创建项目
基本快照
分支与合并
共享和更新项目
检查和比较
打补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.32.1 → 2.50.1 无更改
-
2.32.0
2021-06-06
- 2.31.1 → 2.31.8 无更改
-
2.31.0
2021-03-15
描述
如果文件 .mailmap
存在于仓库的顶层,或者存在于 mailmap.file
或 mailmap.blob
配置选项所指向的位置(参见 git-config[1]),它将用于将作者和提交者的名称和电子邮件地址映射到规范的真实名称和电子邮件地址。
语法
# 字符表示行尾注释的开始,空行将被忽略。
在简单形式中,文件中的每一行都包含作者的规范真实姓名、空格,以及提交中使用的电子邮件地址(由 < 和 > 括起来),以映射到该姓名。例如
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 替换与指定的提交名称和电子邮件地址都匹配的提交的名称和电子邮件。
电子邮件和名称都不区分大小写。例如,这也会匹配上面所示的 Commit Name <commit@email.xx>
Proper Name <proper@email.xx> CoMmIt NaMe <CoMmIt@EmAiL.xX>
示例
你的历史记录包含两个作者 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)>
现在假设 Joe 希望使用他的中间名首字母,而 Jane 更喜欢她的姓氏完全拼写出来。一个用于更正这些姓名的 .mailmap
文件会是这样的
Joe R. Developer <joe@example.com> Jane Doe <jane@example.com> Jane Doe <jane@desktop.(none)>
请注意,没有必要仅为了更正姓名而映射 <jane@laptop.(none)> 的姓名。然而,将明显错误的 <jane@laptop.(none)> 和 <jane@desktop.(none)> 电子邮件地址保留原样通常不是你想要的。一个同时更正这些问题的 .mailmap
文件是
Joe R. Developer <joe@example.com> Jane Doe <jane@example.com> <jane@laptop.(none)> Jane Doe <jane@example.com> <jane@desktop.(none)>
最后,假设 Joe 和 Jane 共享一个电子邮件地址,但名称不同,例如,在由错误报告系统生成的历史记录中有这两个提交。即,历史记录中出现的名称如下
Joe <bugs@example.com> Jane <bugs@example.com>
一个完整的 .mailmap
文件,它也处理这些情况(在上述示例中增加两行),将是
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>