工程有两个分支b1,b2
,b1
修改了代码,然后b2
去merge b1
,合并时发现有较多冲突,临时决定不merge
,直接放弃了所有更改(合并引起的更改),然后就push
到远程了,现在发现b2
上是有b1
的提交记录的,但是没有b1
的修改和新加文件,这个时候想要重新merge b1
就会是all ready up to date
。而且现在b2
上已经有许多新提交了,直接回退到合并操作前也不可行。请教这种情况应该怎么解决?
工程有两个分支b1,b2
,b1
修改了代码,然后b2
去merge b1
,合并时发现有较多冲突,临时决定不merge
,直接放弃了所有更改(合并引起的更改),然后就push
到远程了,现在发现b2
上是有b1
的提交记录的,但是没有b1
的修改和新加文件,这个时候想要重新merge b1
就会是all ready up to date
。而且现在b2
上已经有许多新提交了,直接回退到合并操作前也不可行。请教这种情况应该怎么解决?
先git log 查看log信息,
然后复制b2没合并前的commit hash值
本地回退 执行命令 git reset --hard commit-hash(前面复制的hash值6位以上即可)
远程代码替换 git push -f
最后再与b1合并即可。
5 回答2.8k 阅读
3 回答2.6k 阅读
3 回答971 阅读
你确定放弃合并用的是
git merge --abort
吗?请先记住b2 的 commit has, 或者备份b2
尝试用在b2上用
git reset --hard ORIG_HEAD
回退