git merge误操作

工程有两个分支b1,b2b1修改了代码,然后b2merge b1,合并时发现有较多冲突,临时决定不merge,直接放弃了所有更改(合并引起的更改),然后就push到远程了,现在发现b2上是有b1的提交记录的,但是没有b1的修改和新加文件,这个时候想要重新merge b1就会是all ready up to date。而且现在b2上已经有许多新提交了,直接回退到合并操作前也不可行。请教这种情况应该怎么解决?

阅读 2.7k
2 个回答

你确定放弃合并用的是 git merge --abort 吗?

请先记住b2 的 commit has, 或者备份b2
尝试用在b2上用 git reset --hard ORIG_HEAD 回退

先git log 查看log信息,
然后复制b2没合并前的commit hash值
本地回退 执行命令 git reset --hard commit-hash(前面复制的hash值6位以上即可)
远程代码替换 git push -f
最后再与b1合并即可。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进