Git 回滾Merge的代碼(commit is a merge but no -m option was given.)

我們通過git revert xxx 命令回滾某次merge過的commit,此時會報錯commit is a merge but no -m option was given.,這是因為當(dāng)前的merge commit其實包含了兩個子commit,也就是當(dāng)時合并的兩個commit,因此在執(zhí)行git revert 的時候會失敗,需要選擇回滾具體的兩個子commit中的一個才可以正?;貪L。

案例分析

1.分析log,確認(rèn)需要回滾的commit

我們通過git log xxx 可以看到當(dāng)前commit下的Merge: f2fe8c9 6103926,第二個id:6103926就是我要回滾的commitid前7位。

git log xxx

git log 6103926

2.git revert xxx -m 1

按照git revert xxx報錯的提示,應(yīng)該追加-m命令,以下是命令的注釋

-m, --mainline <parent-number>
                        select mainline parent

我們要回滾第二個id:6103926,則-m 1,表示保留以第1條為主線回滾第2條commit,如果回滾第一個則-m 2
最終我們要回滾的命令:

 git revert 76a2dac344e528799173c4eff843a7 -m 1

執(zhí)行完畢就可以提交了。


補(bǔ)充說明(發(fā)現(xiàn)一個解釋的更清楚的文章)

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

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

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