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

如何撤销误合并到feature分支的dev内容,保留后续提交(SourceTree)

Git错误合并dev分支的撤销方案(保留后续提交)

理解正误判断

你对git reset的认知是正确的:直接执行reset指向合并前的提交,会移动HEAD指针,丢弃指针之后的所有提交记录,不符合你的需求。但git revert可以完美适配你的场景,它不会修改历史提交,只会生成新的提交来撤销指定合并操作的改动,你在feature分支的所有提交(包括错误合并后新增的提交)都会完整保留。

前置准备

  • 先将本地feature分支的未提交改动全部暂存或提交,避免操作中数据丢失
  • 定位到那次错误合并dev的提交哈希值:可直接在SourceTree的提交历史列表中查找,合并提交的描述通常带有Merge branch 'dev' into [你的feature分支名]的特征

操作步骤

SourceTree 图形化操作(适配你当前使用的客户端)

  • 打开SourceTree并切换到目标feature分支
  • 在提交历史列表中右键点击错误的dev合并提交,选择「提交 > 还原提交」(部分版本翻译为「撤销提交」)
  • 弹出的窗口会提示该提交为合并提交,需要选择保留的父提交:选择序号为1的父提交(对应合并前的feature分支状态),确认操作
  • SourceTree会自动生成一个新的撤销提交,点击顶部的「推送」按钮,将该新提交同步到远程仓库即可

命令行操作(可选,用于理解底层逻辑)

  1. 切换到目标feature分支:
    git checkout [你的feature分支名]
  2. 执行revert撤销合并提交,合并提交必须指定-m 1参数选择保留feature侧的父提交,否则会执行失败:
    git revert -m 1 [错误合并提交的哈希值]
  3. 推送新生成的撤销提交到远程:
    git push origin [你的feature分支名]

后续说明

整个操作不会修改任何已有历史提交,你所有的feature分支提交记录都会完整保留。后续如果需要正式合并dev分支的代码,重新执行正常合并流程即可,不会出现逻辑冲突。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 21:57:00