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

如何从合并基点到HEAD逐步对Git分支执行Rebase操作?

逐步将分支B Rebase到主分支A的每个提交上

事前准备

先备份分支B,避免操作失误导致数据丢失:

git checkout B
git checkout -b B-backup

自动化逐步Rebase方案(适合提交数量多的场景)

手动逐个执行git rebase A1、git rebase A2效率极低,可通过脚本自动遍历A1到An的所有提交,完成逐步rebase:

  1. 获取A1到An的提交列表(按提交顺序正序排列):
    git rev-list --reverse A1..A
    
    该命令会输出从A1之后到A分支最新提交An的所有哈希值,顺序为A2、A3…An。
  2. 执行循环脚本完成逐个rebase:
    git checkout B
    for commit in $(git rev-list --reverse A1..A); do
        echo "正在将B Rebase到提交 $commit..."
        git rebase $commit
        # 若出现冲突,解决后执行 git rebase --continue 即可继续脚本
        # 如需跳过当前提交,执行 git rebase --skip
        # 若要终止操作,执行 git rebase --abort 后退出脚本
    done
    

手动操作方案(适合提交数量少的场景)

如果A分支从A1到An的提交不多,可手动依次执行:

  • 切换到B分支:git checkout B
  • 先rebase到A1:git rebase A1(理论上无冲突,因为B从A1分叉),解决冲突后执行git rebase --continue
  • 接着rebase到A2:git rebase A2,解决冲突后继续
  • 重复以上步骤,直到完成git rebase An

注意事项

  • 每次rebase后,分支B的提交哈希会改变,因为rebase是重新生成提交
  • 操作前确保工作区干净(无未提交变更),避免干扰rebase流程
  • 若遇到无法解决的冲突,可通过git rebase --skip跳过当前提交,或用git rebase --abort回退到操作前状态,从备份分支B-backup重新开始

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:21:36