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

时间:2019-01-09 10:45:58

标签: git gitlab

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

  

远程:GitLab:提交人的电子邮件'email@gmail.com'不遵循模式'@ company.fr $'

     

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

     

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

我使用以下命令强制更改了提交电子邮件:

  

git commit --amend --reset-author

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

但是当我尝试(使用--force)推动提交时,上面我仍然要犯同样的错误。

如果您知道为什么它不起作用以及如何强制使用它,我会很高兴地欢迎您

谢谢

1 个答案:

答案 0 :(得分:2)

我也看到了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

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