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

如何撤销Git中从指定分支合并到目标分支的所有相关提交

操作方案

前置准备

先切换到本地QA分支并拉取最新代码,确保操作基于最新版本:

git checkout QA
git pull origin QA

推荐方案:Revert 所有对应合并提交(不影响其他提交,操作风险最低)

这是最符合你场景的实现方式,不需要改动QA上其他提交的历史:

  1. 过滤出所有从release/4.0.1合并到QA的合并提交哈希,执行命令:
git log --merges --grep="release/4.0.1"

输出结果按时间从新到旧排序,每条记录开头commit后跟着的字符串就是对应合并提交的哈希值。
2. 按从新到旧的顺序依次revert每个合并提交,每次执行都指定父节点为1(即保留QA本身的代码线,撤销release分支带来的变更):

git revert -m 1 <最新的合并提交哈希>
git revert -m 1 <次新的合并提交哈希>
# 按顺序处理完所有匹配的合并提交即可
  1. 本地验证代码已经完全移除release/4.0.1的相关变更后,推送到远程QA分支即可:
git push origin QA

可选方案:交互式变基剔除提交(仅适合小场景)

如果QA上除了release/4.0.1之外的提交数量很少,且团队允许重写分支历史,可以用交互式变基直接删除对应提交:

git rebase -i <第一次合并release/4.0.1之前的QA提交哈希>

在弹出的编辑界面中,把所有属于release/4.0.1的提交前的pick改成drop,保存退出后变基完成,验证代码无误后强制推送即可。

注意事项

  • 操作前建议先给当前QA分支打备份标签,避免操作失误可以快速回滚:git tag qa_backup_before_revert
  • 如果后续还要把release/4.0.1重新合并到QA,需要先把本次做的所有revert提交再revert回来,否则之前被撤销的变更不会被再次合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:36:03