使用类似于
的命令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
我的所有搜索都提出了修改提交的建议,但我认为我不想修改那个旧提交。
答案 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服务器上