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

如何撤销已推送到main分支并完成合并的代码?

撤销已合并到远程main分支的代码提交

情况1:远程main分支在你合并后无其他新提交

如果确定没人在你合并后往远程main提交过代码,可以选择以下两种方式:

方式A:保留撤销记录(安全推荐)

  • 切换到本地main分支并拉取最新代码:
    git checkout main
    git pull origin main
    
  • 查看提交日志找到合并提交的哈希值(带Merge标识的那条):
    git log --oneline
    
  • 执行撤销合并操作(-m 1表示保留main分支原基线代码,丢弃合并进来的内容):
    git revert -m 1 <合并提交哈希值>
    
  • 将撤销提交推送到远程:
    git push origin main
    

方式B:彻底删除合并记录(慎用)

这种方式会直接修改远程分支历史,仅在无他人后续提交时使用:

  • 找到合并发生前,远程main分支的最后一个正常提交哈希值:
    git log --oneline
    
  • 重置本地main分支到该提交:
    git reset --hard <合并前的提交哈希值>
    
  • 强制推送到远程覆盖历史:
    git push origin main --force
    

情况2:远程main分支在你合并后已有他人新提交

此时绝对不能用强制重置,必须用revert方式避免覆盖他人工作:

  • 重复情况1中的步骤:切换分支、拉取代码、找到合并提交哈希
  • 执行撤销合并:
    git revert -m 1 <合并提交哈希值>
    
  • 推送撤销提交到远程:
    git push origin main
    

额外提示

  • 后续可以把本地main分支里的待测试提交转移到新分支,避免再次误推:
    git checkout -b feature/temp-branch
    git checkout main
    git reset --hard origin/main
    
  • 多人协作仓库中,强制推送前务必确认远程分支状态,避免造成团队代码丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 23:03:15