推送新的远程分支给出错误提交者电子邮件地址不匹配

时间:2017-03-29 01:14:54

标签: git

使用类似于

的命令
git checkout -b a7e4767 new-branch
git push origin new-branch

我收到以下错误

remote: ERROR:  In commit a7e4767a80e9b0730c8708973918c990af308a45        
remote: ERROR:  committer email address someone.else@xyz.com        
remote: ERROR:  does not match your user account.        
remote: ERROR:        
remote: ERROR:  The following addresses are currently registered:        
remote: ERROR:    my.self@sap.com

我的所有搜索都提出了修改提交的建议,但我认为我不想修改那个旧提交。

2 个答案:

答案 0 :(得分:0)

严格来说,这听起来不像是一个git问题。这听起来更像是feature offered by Gerrit

如果您已在系统中注册并且您的电子邮件地址已在本地存储库中正确设置,那么您可以在没有更改的情况下对新提交进行分层并推送它。新提交将使用您的电子邮件地址进行标记,这可以解决修改现有提交的问题。见How to commit no change and new message?

然而,我认为处理这种情况的正确方法是get the "Forge Committer" permission

答案 1 :(得分:0)

当我们更改公司电子邮件地址时,我遇到了同样的错误,并且对我来说,很容易用:p

#!/bin/sh

git filter-branch --env-filter '

OLD_EMAIL="your-old-email@example.com"
CORRECT_NAME="Your Correct Name"
CORRECT_EMAIL="your-correct-email@example.com"

if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

在git仓库的根目录中运行。

基于: https://help.github.com/en/github/using-git/changing-author-info

我还编辑了仓库的.git / config来添加用户节:

[user]
  name = Your Correct Name
  email = your-correct-email@example.com

然后

git commit --amend --reset-author
git push

PS:这是在Gerrit服务器上