设置和配置
获取和创建项目
基本快照
分支与合并
共享和更新项目
检查和比较
打补丁
调试
电子邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.32.1 → 2.52.0 无更改
-
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>