Git中撤銷(xiāo)中間的某次merge代碼

問(wèn)題

在開(kāi)發(fā)過(guò)程中發(fā)現(xiàn)分支中間某次merge存在dev代碼,需要把這個(gè)merge去掉,但不影響后續(xù)的提交

解決方案

坑點(diǎn):網(wǎng)上說(shuō)用【git revert】來(lái)實(shí)現(xiàn),發(fā)現(xiàn)里面有個(gè)坑點(diǎn),revert之后,假如想在后續(xù)再加入這個(gè)merge分支就不行,因?yàn)橄到y(tǒng)默認(rèn)你已經(jīng)合并過(guò)了,導(dǎo)致分支代碼沒(méi)法再次合并,超級(jí)麻煩

  1. 用【git reset】回到出錯(cuò)版本的上一個(gè)版本
git reset --hard 3c2af5a7 
  1. 用【git cherry-pick】把出錯(cuò)版本后面的commit合并進(jìn)去
git cherry-pick 9dba07f4^..32aba548 ##出錯(cuò)版本后的第一個(gè)commit直至最新commit

或者使用單次合并

git cherry-pick 9dba07f4
  1. 如果在cherry-pick 的過(guò)程中出現(xiàn)了沖突
    在處理沖突后,使用
git cherry-pick --continue

繼續(xù)處理下一個(gè)分支
如果想中途退出cherry-pick,使用

git cherry-pick --abort
  1. 合并沖突后,使用強(qiáng)制推送把舊分支進(jìn)行覆蓋
git push origin HEAD:comitName --force

引用:
https://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html
http://www.itdecent.cn/p/08c3f1804b36

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容