Git推送错误:与您的用户帐户不符

时间:2016-11-17 09:20:01

标签: git gerrit

我执行了以下命令:

git pull <partner_remote> <partner_branch>
git config user.email <my_email>
git config user.name <my_name>
git commit --amend --reset-author
git push <my_remote> HEAD:refs/for/<my_branch>

但是在&#34; git push&#34;:

之后我收到了以下错误
remote: ERROR:  In commit b6b74fff7850c4b61a5535519959b1ab58ca6fa9
remote: ERROR:  committer email address aaa@aaa
remote: ERROR:  does not match your user account.
remote: ERROR:
remote: ERROR:  The following addresses are currently registered:
remote: ERROR:    bbb@bbb
remote: ERROR:
remote: ERROR:  To register an email address, please visit:
remote: ERROR:  http://xxxxxxxx

我不知道如何解决它。

6 个答案:

答案 0 :(得分:3)

您可以运行以下命令:

git config --global user.name "Your Name"
git config --global user.email you@example.com

然后运行此命令以编辑提交以重置作者:

git commit --amend --reset-author

答案 1 :(得分:2)

如果我理解正确,(aaa @ aaa)与在Gerrit注册的bbb @ bbb电子邮件不同,对吧?所以...检查aaa @ aaa是否是您正确的电子邮件并在Gerrit注册:

  1. 转到Gerrit
  2. 点击“你的名字”(右上)
  3. 点击“设置”
  4. 点击“联系信息”
  5. 点击“注册新电子邮件...”
  6. 用aaa @ aaa填写字段,然后点击“注册”
  7. 您将收到“[Gerrit Code Review]电子邮件验证”电子邮件,按照说明将aaa @ aaa电子邮件地址添加到您的用户帐户。

答案 2 :(得分:1)

此外,当您尝试提交其他人的更改时,可能会收到相同的错误。当约翰提交评论时,我的团队中这是一个非常常见的用例,但约翰去度假\病假\休假,并且出现了一些反馈。因此,如果提交必须尽快合并,则需要进行一些更改。 Gerrit允许您检查任何人的提交,进行更改并将其作为新的补丁集上传。原作者(约翰)仍将是#34;作者&#34;,但你将成为&#34;提交者&#34;。

这只是对案件的简要描述,现在又回到了这个问题。在我的团队中,我们的Gerrit配置已经设置好了#34; Submitter&#34;默认情况下,它没有Forge Author\Forge Committer权限,因此您在尝试上传新的修补程序集时会遇到与问题中提到的完全相同的错误。

解决方案是在gerrit项目中请求更高的角色(维护者,开发人员或管理员)

作为替代方案,可以强制覆盖提交的作者:

git commit --amend --reset-author

答案 3 :(得分:0)

这是由于 git credential-manager 存储了以前的登录凭据。

这是Fix,Just Execute:

git credential-manager clear <gerrit url>

例如:git credential-manager clear https://mygerrit.com

如果您再次推送或克隆,则会提示输入用户名和密码

答案 4 :(得分:0)

转到Gerrit->设置-> HTTP凭据,按照指导步骤完成以下选项: 获取密码(在新标签页中打开)

答案 5 :(得分:0)

对我来说,问题在于我使用的是Cygwin,并且以某种方式将错误的凭据存储在Cygwin文件夹内的.git-credential文件中。

位置:cygwin / home / <用户名> /。git-credential

更正了该问题,之后效果很好。