首页 > 解决方案 > Github 网站提交作者用户名与 git log 中显示的用户名不同

问题描述

我对此束手无策。我一直在使用新 PC 进行 IntelliJ 项目,并且发现当我推送任何提交时,作者姓名会显示我的旧用户名(几个月前我已经更改了它,在我得到这台 PC 之前)。然而,无论我做什么,我似乎都无法让 Github 显示正确的作者用户名。

在 cmd 中查看 git log 显示正确的用户名,

git remote show origin

将正确的获取和推送 URL 显示为

https://<username>@github.com/<username>/<project>.git

IntelliJ 的 Git 提交历史窗口也显示了正确的用户名,但是当我进行任何提交时,它仍然显示 Github 上的旧用户名。

我还尝试了以下方法:

git commit --amend --author "\<username> <<email-address>>"

关于有问题的提交,然后是强制推送(提交确实强制推送并显示为已修改,但作者保持不变)

还有什么我可以尝试的吗?我想不出为什么这些提交在新机器上全新安装时会显示错误的用户名,而且我在任何地方都能找到的建议似乎都不起作用。欢迎任何和所有想法!

标签: gitgithubintellij-idea

解决方案


这里发生了两种不同的事情。

首先,在你的提交中,有一个名字和一个电子邮件。 如 Git FAQ 中所述,其中的user.name内容通常是个人姓名,而不是用户名。inuser.name对任何帐户或身份验证都没有任何影响,因此没有理由将其设置为用户名。例如,Git 的维护者使用“Junio C Hamano”。 user.email用于配置提交中的电子邮件地址。

您在 GitHub 上看到的是 GitHub 用户名,与您的提交的关联纯粹基于提交中的电子邮件地址(通常是user.email您提交时的设置)。例如,如果我使用我通常在家里使用的电子邮件地址,GitHub 会将这些与用户 bk2204 相关联。此对应关系在设置中设置,一次只能将一个帐户与一个电子邮件地址关联。

如果您希望您的提交与不同的帐户相关联,那么他们必须使用与该帐户相关联的电子邮件地址。如果您在电子邮件地址未与任何帐户关联的情况下创建提交,则 GitHub 将不会显示帐户,而是将值设置为提交中的(个人)名称(例如,“Pat Roe”)。


推荐阅读