commit XXX is a merge but no -m option

本文介绍了在遇到Git revert merge commit错误时的两种解决方案。一种是通过本地命令行使用git revert -m选项指定要revert的merge commit中的具体commit。另一种是在GitHub或GitLab上直接通过UI界面的revert功能解决问题。
摘要由CSDN通过智能技术生成

今天在进行revert操作的时候报了标题所示的错误,思考一番后解决,以下是解决方法 

 我的操作是在F1,F2分支上修改并提交之后,在github上提交merge request请求合并完成之后,通知F1的需求不上了,需要revert(两个分支无冲突,直接merge和revert就行)

此时有两种方案:

第一种:直接在本地建立一个revert_F1分支,然后使用 git revert <commitId> 即可,这时我运行git revert a3eb5db,直接报错commit XXX is a merge but no -m option

因为对于revert merge的情况,我们需要指出revert 这个merge commit中的哪一个。通过-m或者--mainline参数,以及配合一个整数参数,git就知道到底要revert哪一个merge。

下图中绿色框中Merge: xxxx(对应master分支的commitId) xxxx(对应F1分支的commitId) 实际上是对应了两个commitId.

如果使用git revert a3eb5db -m 1命令会revert第一个commit,也就是6e4c52b(在图中没有展示出来),使用-m 2会revert第二个commit,也就是70c74d0

 如果做了以上操作不行的话,就把你的commitId吧F1 merge 时的commitId改成F1提交时的commitId再运行git revert <commitId>命令即可

对应上图中就是运行git revert 70c74d0

 

第二种:在github或者gitlab上找到你pull requests中你merged或者close的列表,找到之前merge的记录点击进去找到revert按钮点击即可revert

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值