当网络在中间断开时,gerrit / git设置搞乱了。如何放弃部分提交?

时间:2012-10-25 23:48:09

标签: git gerrit

当我的网络断开连接时,我正在使用“git push origin HEAD:refs / for / master”将我的更改从本地git repo推送到Gerrit。

现在当我尝试重新运行它时,我得到了:

计算对象:40,完成。 Delta压缩使用多达8个线程。 压缩对象:100%(28/28),完成。 书写对象:100%(36/36),2.23 MiB,完成。 总计36(delta 4),重复使用5(delta 0) 远程:解决增量:100%(4/4) remote:处理更改:refs:1,done
至ssh:// @:29418 / scaligent.git  ! [远程拒绝] HEAD - > refs / for / master(更改57已关闭) 错误:未能将某些引用推送到'ssh:// @:29418 / scaligent.git'

如何清理状态?

1 个答案:

答案 0 :(得分:1)

错误消息说了所有内容

  

[远程拒绝] HEAD - > refs / for / master(更改57关闭)

这不是由git push引起的。通常,在这种情况下会出现此错误:

  • 将本地提交推送到服务器,作为更改57补丁集1
  • 修改内容& git commit -amend
  • 有人(包括你自己)点击gerrit中的提交或放弃按钮(将关闭更改57)
  • 再次运行git push

Gerrit发现您尝试将新补丁集添加到已关闭的更改中,因此请恢复推送。

现在您可以按照以下步骤清理它:

  • (可选)git branch -b backup
  • git fetch origin
  • git reset origin / master
  • git commit -a
  • git push origin HEAD:refs / for / master