首页 > 解决方案 > 更改 GitHub 用户名时提交属性?

问题描述

我愿意更新我的 GitHub 用户名,使其与其他网站和社交媒体更加一致和可识别。

根据GitHub 文档

与您的 GitHub 提供的 noreply 电子邮件地址关联的 Git 提交不会归因于您的新用户名,也不会出现在您的贡献图中。如果您的 Git 提交与您添加到 GitHub 帐户的另一个电子邮件地址相关联,包括基于 ID 的 GitHub 提供的 noreply 电子邮件地址,它们将继续归属于您,并在您完成后出现在您的贡献图中更改了您的用户名。有关设置您的电子邮件地址的更多信息,请参阅“设置您的提交电子邮件地址”。

究竟是什么意思?如果我理解正确,如果我更改我的用户名,我的提交将不再归于我吗?“noreply 电子邮件地址”和“基于 ID 的 noreply 电子邮件地址”的正确含义是什么?我如何才能找到我的提交是否与一个或另一个相关联?

换句话说,如何在更改用户名之前检查是否会丢失提交属性?

请注意,我在本地工作,这git config --list | grep email给了我user.email=<my-real-email>@gmail.com.

标签: gitgithub

解决方案


另一个答案主要回答了这个问题,但还有一个额外的考虑。即使您一直使用 GitHub 的 no-reply email address ,您也可以将您的提交归因于您的新用户名,具体取决于地址的样子。文档中的关键段落如下:

注意:如果您在 2017 年 7 月 18 日之后创建了 GitHub 帐户,则您的 GitHub 提供的no-reply电子邮件地址是一个七位数的 ID 号,并且您的用户名格式为ID+username@users.noreply.github.com. 如果您在 2017 年 7 月 18 日之前创建了 GitHub 帐户,则 GitHub 提供的no-reply电子邮件地址是您的用户名,格式为username@users.noreply.github.com. 您可以通过在您的电子邮件设置中no-reply选择(或取消选择并重新选择)将我的电子邮件地址保密来获取基于 ID 的 GitHub 提供的电子邮件地址。

如果您使用 GitHub 提供的noreply电子邮件地址进行提交,然后更改您的用户名,则这些提交将不会与您的 GitHub 帐户相关联。noreply如果您使用的是基于 ID 的 GitHub 提供的地址,则这不适用。更多信息请参阅“更改您的 GitHub 用户名”。

较旧的无回复地址是基于用户名的,因此与您的 GitHub 用户名相关联。如果您的提交使用了这样的地址,那么它们将继续归属于旧用户名,并且不会切换到您的新用户名。如果后来有人使用旧用户名,这些提交将归于该用户。

自 2017 年 7 月 18 日起,GitHub 更改了此功能,为无回复地址添加了 ID。此 ID 现在与您的帐户相关联,并且与您的用户名无关。如果您有一个基于 ID 的地址,更改用户名仍然会将来自该地址的所有提交归于您。但是,如果您在基于 ID 的地址发布之前开始使用 GitHub 的无回复电子邮件功能,您将继续使用旧形式的地址,除非您明确重新选择该选项,如注释所述。

总而言之,在用户名更改后,提交将继续归因于您的帐户,如果:

  1. 提交使用了与您的 GitHub 帐户关联的电子邮件地址
  2. 该提交使用了GitHub 提供的基于 ID 的无回复电子邮件地址

推荐阅读