是否可以在 git 配置中设置多个用户电子邮件?

Is it possible to set multiple user emails in git config?

是否可以设置多个用户邮箱?

我试图将所有未来的提交与几封电子邮件相关联,这样,例如,它们可以通过任何一封电子邮件在 GitHub/GitLab/(etc) UI 中找到,并且现有的 GPG 签名仍然适用于该提交。这能做到吗?


让我也说明一下我不是什么意思:

基本上,我想改变这个:

…变成这样的东西:

简短的回答是否定的:一个提交应该只有一个作者和一个提交者。

一些现有的存​​储库中显然有一些提交有多个作者,因此 git fsck 诊断将其称为单独的错误,可以将其配置为警告而不是错误。这意味着检查传入的提交(从 git push 对服务器的操作)也可以将它们作为警告而不是错误来调用。

如果您要在您使用的每个系统(包括您使用的所有托管系统)中设置此警告,您将获得创建和传输此类提交的能力。不过总体来说,这似乎不是一个特别好的计划。

无法在单个提交中为作者或提交者指定多个电子邮件地址。 Git 可能会(也可能不会)接受您提出的语法,但它不代表多个电子邮件地址。由于它与 RFC 5322 中的生成不匹配,因此它根本无法表示电子邮件地址。真实的电子邮件地址允许包含空格,但必须用引号引起来;这只是格式错误。

GitHub 和 GitLab 根本不会考虑此语法来匹配任何有效的电子邮件地址,因为根据生产,电子邮件地址之间的部分应该正好代表一个电子邮件地址在 RFC 5322 中。因此,您所做的任何此类承诺都不会与您的帐户相关联。即使现在接受此语法,将来也可能会被 Git 或其他工具拒绝。

Is there a possibility of setting multiple user emails? I'm trying to associate all future commits with several emails

是的,Git 有一个工具,即 mailmap 文件。它的默认位置是一个已提交的 .mailmap 文件,但您可以将其配置到任何您想要的位置,请参阅 git shortloggit check-mailmap 了解完整详细信息。所以如果你有多个电子邮件,选择一个主要的,写

Dima Parzhitsky <primaryyou@example.com> <anotheryou@adifferent.example.com> <etc…>

.mailmap 和 git 会将您的主要姓名和电子邮件与所有这些电子邮件地址相关联。

so that, for example, they could be found in GitHub/GitLab/(etc) UI by either of the emails

不能保证每个 Web 前端都实现所有 Git。那些不实施 Git 的电子邮件映射的人不会建立您在此处列出的关联。 Git 但是,它本身会。