提交到Github时使用错误的用户名

10
如果我使用错误的本地凭证(用户名和密码)提交到github,是否可以更改github上的提交者名称?如果你有两个git账户,可能会遇到这个问题!顺便说一下,我不是在问如何重新配置本地git账户。
4个回答

40

1- 配置您的新用户名和电子邮件:

更改用户名:git config username.user <username>

更改电子邮件:git config username.email <email>

2- 运行此命令:git commit --amend -C HEAD --reset-author

3- 运行此命令:git push --force

这将更改上一个提交中的其他信息。


2
对我来说,git config user.email <email> 这个命令有效。 - ericdemo07
2
使用 git config user.name <username>git config user.email <email> 对我有效。 - mmccabe

6

您可以使用以下命令在本地更改最后一次提交:

git commit --amend --author="Author Name <email@address.com>"

那么请执行以下步骤:
git push --force

这将强制执行作者提交,覆盖旧的提交。

1
对我没用。 我得到了fatal: --author 'username <email>' is not 'Name <email>' and matches no existing author - Amjad
尝试将“作者姓名email@address.com”替换为您希望使用的用户的电子邮件地址。 - hardillb
我确实做了,只是不想在这里公开分享,所以我改变了它们。 - Amjad
它不起作用。 - huykon225

1

为了将提交与您的Github帐户关联,您本地git配置中的电子邮件或用户名应与您在Github上的电子邮件或用户名匹配。

  1. 检查您当前的Git配置:
git config --global --list
  1. 请将您的电子邮件或用户名更新为与您的Github账户相同的值:
git config --global user.email "xyz@gmail.com"
git config --global user.name XYZ
git config --global user.username xyz

(可选)如果您想要更改之前的提交以反映您的新电子邮件/用户名。但请注意,如果存储库有多个用户的提交,这将会将所有提交更改为具有相同的新作者。
git filter-branch -f --env-filter "GIT_AUTHOR_NAME='Newname'; GIT_AUTHOR_EMAIL='new@email'; GIT_COMMITTER_NAME='Newname'; GIT_COMMITTER_EMAIL='new@email';" HEAD

0
在我的情况下,我有两个GitHub账户(A和B)。我使用A创建了一个存储库,在本地配置git时,使用了B帐户的电子邮件ID。因此,每当我从本地推送代码时,git都会将帐户B推断为作者。因此,即使我使用了帐户A的凭据,所有使用本地机器进行的提交仍然显示作者B。
解决方法: 在本地为帐户A配置电子邮件,问题得到解决。此外,所有提交都显示正确的作者A。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接