设置和配置
获取和创建项目
基本快照
分支和合并
共享和更新项目
检查和比较
补丁
调试
邮件
外部系统
服务器管理
指南
管理
底层命令
- 2.32.1 → 2.49.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@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>
GIT
属于 git[1] 套件的一部分