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

问题描述

是否可以设置多个用户电子邮件

我正在尝试将所有将来的提交与几封电子邮件相关联,例如,可以通过其中的一封电子邮件在GitHub / GitLab /(etc)UI中找到它们,并且现有的GPG签名仍然适用那个承诺。能做到吗?


让我也指定我的意思:

  • 这不是为作者和提交者设置不同的电子邮件
  • 这与设置多个作者和/或多个提交者无关;
  • 这与设置不同的本地user.email和全局user.email无关;

基本上,我要更改此内容

enter image description here

…变成这样:

enter image description here

解决方法

是否可以设置多个用户电子邮件?我正在尝试将所有将来的提交与几封电子邮件关联起来

是的,Git有一个设施,即邮件映射文件。它的默认位置是已提交的.mailmap文件,但是您可以将其配置为任意位置,有关完整详细信息,请参见git shortloggit 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或其他工具拒绝。