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

Git并行分支存相同变更不同哈希,如何调整分支结构?

解决Git重复提交分支的合并问题

当前仓库结构

A1  -  B1  -  C1  -  D1  -  E1
           \
            \ C2  -  D2  -  F2

其中:

  • C1与C2、D1与D2的文件变更完全一致(git diff C1 C2返回空),但提交哈希和提交信息不同
  • E1与F2的变更完全独立

目标结构

A1  -  B1  -  C1  -  D1  -  E1
                         \
                          \ F2

解决方案

针对大量重复提交的场景,无需手动计数重复提交数量,可通过以下命令自动跳过无变更的重复提交,将F2直接迁移到D1之后:

  1. 切换到包含F2的分支(假设分支名为topic,替换为实际分支名):

    git checkout topic
    
  2. 执行带自动跳过空提交的变基命令:

    git rebase --onto D1 B1 --skip-empty
    

命令解释

  • --onto D1:指定将分支重新基于D1提交
  • B1:指定从B1之后的提交开始处理(即C2、D2、F2)
  • --skip-empty:自动跳过那些应用后未产生任何文件变更的提交(也就是C2和D2,因为它们的变更已经存在于D1所在的主链中)

执行完成后,仓库结构会自动调整为目标样式,C2、D2这类重复提交会被丢弃。

内容的提问来源于stack exchange,提问作者Amedee Van Gasse

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 17:12:33