问题描述
我正在尝试将所有将来的提交与几封电子邮件相关联,例如,可以通过其中的一封电子邮件在GitHub / GitLab /(etc)UI中找到它们,并且现有的GPG签名仍然适用那个承诺。能做到吗?
让我也指定我的意思:
- 这不是为作者和提交者设置不同的电子邮件;
- 这与设置多个作者和/或多个提交者无关;
- 这与设置不同的本地
user.email
和全局user.email
无关;
基本上,我要更改此内容:
…变成这样:
解决方法
是否可以设置多个用户电子邮件?我正在尝试将所有将来的提交与几封电子邮件关联起来
是的,Git有一个设施,即邮件映射文件。它的默认位置是已提交的.mailmap
文件,但是您可以将其配置为任意位置,有关完整详细信息,请参见git shortlog
和git check-mailmap
。因此,如果您有多封电子邮件,请选择一封主要电子邮件,然后写
Dima Parzhitsky <primaryyou@example.com> <anotheryou@adifferent.example.com> <etc…>
与.mailmap
和git会将您的主要姓名和电子邮件与所有这些电子邮件地址相关联。
例如,可以通过任意一封电子邮件在GitHub / GitLab /(etc)UI中找到它们
不能保证每个Web前端都实现所有Git。没有实现Git电子邮件映射的用户将不会建立您在此处列出的关联。不过,Git本身会。
,简短的答案是否定的:一个提交应该恰好有一个作者和一个提交者。
在某些现有存储库中,显然有一些提交具有多个作者,因此git fsck
诊断将此称为单独的错误,可以将其配置为警告而不是错误。这意味着检查传入的提交(从git push
操作到服务器)也可以将它们作为警告而不是错误进行调用。
如果要在使用的每个系统(包括使用的所有主机系统)中发出警告,则可以创建和传输此类提交。但是,总体上看,这似乎并不是一个特别好的计划。
,不可能在一次提交中为作者或提交者指定多个电子邮件地址。您提出的语法可能会(也可能不会)被Git接受,但是它不代表多个电子邮件地址。由于它与RFC 5322中的生产不匹配,因此根本无法表示电子邮件地址。真实的电子邮件地址允许包含空格,但必须加引号;这只是格式错误。
GitHub和GitLab根本不会考虑此语法与任何有效的电子邮件地址匹配,因为根据RFC 5322的规定,该电子邮件地址之间的部分应该恰好代表一个电子邮件地址。因此,您所做的任何此类提交都赢得了不会与您的帐户相关联。即使现在接受此语法,将来也可能会被Git或其他工具拒绝。