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

如何忽略合并提交并压缩其余普通提交?附分支场景示例

Git分支历史压缩实现方案

这个操作完全可行,用Git的交互式变基就能达成目标,具体步骤如下:

步骤1:合并A、B提交为(AB)

  1. 切换到包含G的目标分支(假设分支名为main):
    git checkout main
    
  2. 启动交互式变基到仓库初始提交(若A不是仓库第一个提交,替换成A的哈希值即可):
    git rebase -i --root
    
  3. 在弹出的编辑界面中,找到提交B对应的行,将开头的pick修改为squash(或缩写s),保存并退出编辑。
  4. 随后会弹出提交信息编辑框,将内容修改为(AB),保存后完成A、B的合并。

步骤2:合并D、E提交为(DE)

  1. 保持在目标分支上,启动交互式变基到提交C的位置(替换成C的哈希值):
    git rebase -i <C的哈希值>
    
  2. 在编辑界面找到提交E对应的行,将pick修改为squash,保存并退出。
  3. 在提交信息编辑框中输入(DE),保存后完成D、E的合并。

注意事项

  • 如果目标分支已推送到远程仓库,不要随意执行上述操作——变基会重写历史,会导致协作成员的代码出现冲突,除非确认无他人使用该分支,或已和团队沟通好后续同步方案。
  • 分支c'--c''和f'--f''的父提交不会受影响,它们会保持原有的分叉结构,完全符合你想要的最终分支树形态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:17:14