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

如何撤销误推送到远程origin master分支的Git合并提交?

撤销远程master分支上的误合并提交

前提说明

如果你的仓库是私有库,且没有其他团队成员已经拉取过这个错误的master分支,优先用重置强制推送的方式,能彻底消除误合并痕迹;如果已经有人拉取过错误分支,用撤销提交的方式更安全。


方法一:重置远程master到误合并前的状态(彻底消除痕迹)

  • 切换到本地master分支
    git checkout master
    
  • 找到误合并提交(4f56ec45)之前的正确提交ID
    执行命令查看提交历史:
    git log --oneline
    
    在输出里找到4f56ec45的上一条提交(也就是合并前master的最后一个正确提交),记下它的ID(比如abc1234)。
    或者直接获取合并提交的第一个父节点(即原master的正确提交):
    git show 4f56ec45 --pretty=format:"%P"
    
    输出的第一个字符串就是目标提交ID。
  • 重置本地master到正确提交
    如果本地有未提交的改动,先暂存避免丢失:
    git stash
    
    然后重置:
    git reset --hard <正确提交ID>
    
    之后可以恢复暂存的改动:
    git stash pop
    
  • 强制推送到远程master,覆盖错误提交
    git push origin master --force
    

方法二:用revert撤销合并提交(保留操作记录,适合多人协作场景)

  • 切换到本地master分支
    git checkout master
    
  • 撤销合并提交
    -m 1表示保留合并提交的第一个父分支(即原master的状态),撤销用户分支的合并改动:
    git revert -m 1 4f56ec45
    
    执行后会生成一个新的撤销提交,按提示填写提交信息即可。
  • 推送撤销提交到远程
    git push origin master
    

后续确认

  • 回到你的开发分支,确保之前的改动还在:
    git checkout <你的分支名称>
    
  • 如果之前本地改动意外丢失,可以用git reflog查看所有本地操作记录,找到之前的提交或改动,用git reset --hard <记录里的ID>恢复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:25:21