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

合并GitHub PR后,如何将本地Git提交历史调整为A-B-B'-C-D?

问题:如何将PR合并后的提交B'整合到本地原有提交序列中?

本地初始Git提交历史:

A-B-C-D (tip)

我希望为提交B、C、D分别在GitHub上创建Pull Request(PR)。针对提交B,执行了以下操作:

git checkout B~1
git checkout -b pr-B
git cherry-pick B
git push

成功创建包含提交B的PR后,PR收到更改请求,我添加了提交B',此时提交历史变为:

A-B-C-D
  \-B'

推送更改并合并PR后,推测远程历史变为:

A-B-B'

希望本地提交历史变为:

A-B-B'-C-D

请问能否实现?具体该怎么做?


解决方案

完全可以实现,具体操作步骤如下:

  1. 拉取远程合并后的最新代码
    先切换到你的主分支(比如main或master),拉取远程合并后的内容,确保本地主分支同步到A-B-B'的状态:

    git checkout main
    git pull
    
  2. 将原有提交C、D Rebase到B'之后
    切换到包含A-B-C-D的本地分支(假设是你原来的开发分支,比如dev),执行rebase操作,把C、D这两个提交“搬移”到B'的后面:

    git checkout dev
    git rebase main
    
    • 如果过程中出现冲突,Git会暂停rebase,你需要手动解决文件冲突。
    • 冲突解决后,执行git add <冲突文件>标记冲突已解决,然后继续rebase:
      git rebase --continue
      
    • 重复上述冲突处理步骤,直到rebase完成。
  3. 确认最终历史
    完成后,查看分支历史就会变成你想要的A-B-B'-C-D结构:

    git log --oneline
    

注意:如果这个包含C、D的分支已经推送到远程,且有其他团队成员在协作,强制推送前要和团队沟通,避免影响他人工作。强制推送命令为git push -f(仅在个人分支或确认无冲突场景下使用)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:35:20