Git 回滚Merge的代码(commit is a merge

2021-01-13  本文已影响0人  汗青fullstack

我们通过git revert xxx 命令回滚某次merge过的commit,此时会报错commit is a merge but no -m option was given.,这是因为当前的merge commit其实包含了两个子commit,也就是当时合并的两个commit,因此在执行git revert 的时候会失败,需要选择回滚具体的两个子commit中的一个才可以正常回滚。

案例分析

1.分析log,确认需要回滚的commit

我们通过git log xxx 可以看到当前commit下的Merge: f2fe8c9 6103926,第二个id:6103926就是我要回滚的commitid前7位。

git log xxx
git log 6103926
2.git revert xxx -m 1

按照git revert xxx报错的提示,应该追加-m命令,以下是命令的注释

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

我们要回滚第二个id:6103926,则-m 1,表示保留以第1条为主线回滚第2条commit,如果回滚第一个则-m 2
最终我们要回滚的命令:

 git revert 76a2dac344e528799173c4eff843a7 -m 1

执行完毕就可以提交了。


补充说明(发现一个解释的更清楚的文章)

上一篇 下一篇

猜你喜欢

热点阅读