鍍金池/ 問答/Linux/ git merge誤操作

git merge誤操作

工程有兩個(gè)分支b1,b2,b1修改了代碼,然后b2merge b1,合并時(shí)發(fā)現(xiàn)有較多沖突,臨時(shí)決定不merge,直接放棄了所有更改(合并引起的更改),然后就push到遠(yuǎn)程了,現(xiàn)在發(fā)現(xiàn)b2上是有b1的提交記錄的,但是沒有b1的修改和新加文件,這個(gè)時(shí)候想要重新merge b1就會(huì)是all ready up to date。而且現(xiàn)在b2上已經(jīng)有許多新提交了,直接回退到合并操作前也不可行。請教這種情況應(yīng)該怎么解決?

回答
編輯回答
夢一場

你確定放棄合并用的是 git merge --abort 嗎?

請先記住b2 的 commit has, 或者備份b2
嘗試用在b2上用 git reset --hard ORIG_HEAD 回退

2018年5月15日 19:56
編輯回答
脾氣硬

先git log 查看log信息,
然后復(fù)制b2沒合并前的commit hash值
本地回退 執(zhí)行命令 git reset --hard commit-hash(前面復(fù)制的hash值6位以上即可)
遠(yuǎn)程代碼替換 git push -f
最后再與b1合并即可。

2017年2月3日 09:13