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

基础分支被Squash合并到主分支后,如何合并依赖分支?

解决依赖分支被Squash合并后的Git重基问题

问题场景

当包含提交A、B的依赖分支被Squash合并为提交D到master后,基于该分支开发的功能分支(含提交C)仍保留A、B提交。现在需要将C合并到master时剔除A、B,同时保留原有PR的评审记录。

最优解决方案:使用git rebase --onto直接迁移目标提交

这个方法无需手动删除提交,能精准将提交C移到master顶端,且保留原PR的评审记录(因为是在原有分支上更新,PR关联的分支未变更)。

操作步骤:

  1. 切换到需要处理的功能分支(假设分支名为feature-C),并拉取最新远程代码:
git checkout feature-C
git fetch origin
  1. 执行rebase --onto命令,将提交C从A-B分支迁移到master分支:
git rebase --onto origin/master <提交B的哈希值> feature-C
  • 说明:<提交B的哈希值>是提交B的SHA-1值(可通过git log查看),该命令会把B之后的所有提交(仅提交C)从原分支摘出,接到origin/master顶端。
  • 简化写法:如果提交C是提交B之后的第一个提交,可用相对引用替代哈希值:
git rebase --onto origin/master feature-C~1 feature-C
  1. 若过程中出现冲突,解决冲突后继续重基:
git add .
git rebase --continue
  1. 由于重基修改了分支历史,需要强制推送更新到远程分支(注意:若有其他协作者在该分支工作,需提前沟通):
git push --force-with-lease origin feature-C

方案优势

  • 操作精准,无需在交互式重基中手动选择删除A、B提交,减少繁琐步骤;
  • 基于原有分支更新,PR的评审讨论记录不会丢失;
  • 最终分支历史更简洁,仅保留提交C和master的最新状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:52:04