强制更改提交者的电子邮件

Saa*_*hir 7 git gitlab

我使用错误的电子邮件"email@gmail.com"进行了提交,当我尝试推送提交时,由于以下原因导致失败

remote:GitLab:Committer的电子邮件'email@gmail.com'不遵循'@ company.fr $'模式

到gitlab.com:xxxxxx.git![远程拒绝] xxxx - > xxxx(预接收挂钩拒绝)

错误:无法将某些引用推送到'xxxxx'

我用命令强制改变了commit的电子邮件:

git commit --amend --reset-author

我强制将电子邮件地址更改为正确的地址"email@company.fr",并且日志显示更改已生效

但是当我尝试推送(使用--force)提交时,我仍然需要上面的相同错误.

如果您知道为什么它不起作用以及我如何强迫它,我很乐意欢迎它

谢谢

Tim*_*sen 4

我在Bitbucket上也看到了这个问题,我也不知道为什么会发生(它不应该基于我的理解)。我发现有效的方法是在 Git 中本地更正用户电子邮件配置文件,然后重新提交。请尝试以下操作:

# from your feature branch
git branch backup                         # create backup branch
git reset --hard HEAD~1                   # remove the problem commit
git cherry-pick <SHA-1 of HEAD of backup> # cherry-pick back the commit
git push origin feature
Run Code Online (Sandbox Code Playgroud)

当您挑选回您的提交时,您实际上是在创建一个全新的提交,并且第一次就使用了正确的电子邮件地址。我已经看到这种方法适用于 Bitbucket,并且值得在 Gitlab 上尝试。