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