You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git撤销合并提交时提示缺少-m选项的问题求助

解决Git撤销合并提交时的-m选项报错问题

嘿,这个问题我太熟悉了!你遇到的报错是因为你尝试撤销的是一个合并提交,这类提交有多个父节点,Git需要你明确指定撤销后要保留哪一条分支的历史,所以必须加上-m参数来指定父编号。

为什么会报错?

看你的git log输出,目标提交1c3268d4b69dc6ca9dd89e92b513f5edb194978c是一个合并提交:

commit 1c3268d4b69dc6ca9dd89e92b513f5edb194978c
Merge: 5d6fdd4 7531be0
Author: jaskarans <jask@sl.com>
Date:   Fri Mar 16 10:23:58 2018 +0530

    Merge branch 'development' of https:// abc.com:8888/development/asdf into jQuery_update

这里的Merge: 5d6fdd4 7531be0表示这个合并提交有两个父节点:

  • 5d6fdd4:是你本地分支jQuery_update在合并前的最后一个提交(也就是你自己的分支历史)
  • 7531be0:是被合并的远程development分支的最后一个提交

Git不知道你撤销合并后想要保留哪一边的内容,所以必须用-m参数指定父编号(1对应第一个父节点,2对应第二个)。

正确的撤销步骤

  1. 确定要保留的分支历史:

    • 如果你想撤销合并,回到合并前的状态(保留你本地jQuery_update分支的内容,丢弃从development分支合并过来的变更),用-m 1
    • 如果你想保留development分支的内容,撤销你本地分支的变更,用-m 2(这个场景很少见,一般都是选-m 1)
  2. 执行撤销命令:
    去掉不必要的sudo(Git操作一般不需要管理员权限,除非仓库目录权限异常),执行:

    git revert -m 1 1c3268d4b69dc6ca9dd89e92b513f5edb194978c
    

    执行后会打开编辑器让你填写撤销提交的说明,保存退出即可生成一个新的撤销提交。

  3. 推送撤销结果到远程:
    最后把这个新的撤销提交推送到远程仓库:

    git push
    

额外提示

如果你不确定父节点对应的分支内容,可以用以下命令查看合并提交的详细信息:

git show 1c3268d4b69dc6ca9dd89e92b513f5edb194978c

输出里会清晰显示两个父提交对应的分支信息,帮你确认选哪个-m参数。

内容的提问来源于stack exchange,提问作者Sandeep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:11:39