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

如何使用交互式变基(Interactive Rebase)合并最近两个Pull Request并将PR2整合至PR1

别着急,这种不小心开了重复PR的情况我见太多了,用交互式变基完全能搞定!我来一步步给你讲清楚怎么把PR2的改动合并到PR1里,顺便也说下合并最近两个PR的通用流程:

方法一:PR2是基于PR1分支创建的(最常见情况)

假设你的PR1对应本地分支是pr1-branch(比如feature/add-checkout),PR2是从这个分支拉出来的新分支,只有那一个你本该用git commit --amend修改的改动commit:

1. 先把本地仓库同步到最新状态

  • 切换到PR1分支:git checkout pr1-branch
  • 拉取远程最新代码:git pull origin pr1-branch

2. 用交互式变基合并PR2的commit

  • 切换到PR2分支:git checkout pr2-branch
  • 启动交互式变基,目标是PR1的分支:git rebase -i pr1-branch
    执行完这个命令会弹出文本编辑器,里面只会显示PR2比PR1多的那个commit(就是你后来加的改动)。

3. 修改变基指令合并commit

在编辑器里,把那个commit前面的pick改成squash(或者缩写s也行),比如:

squash abc1234 修复了表单验证的bug(这是PR2的commit信息)

保存并关闭编辑器就行。

4. 编辑合并后的最终commit信息

接下来会弹出另一个编辑器,让你整合两个commit的信息。你可以保留PR1的原始信息,或者把PR2的改动说明加进去,编辑完保存关闭就好。

5. 把合并后的内容同步到PR1分支

  • 切回PR1分支:git checkout pr1-branch
  • 合并PR2分支的内容:git merge pr2-branch
  • 强制推送到远程(因为修改了commit历史,必须用强制推送,但--force-with-lease更安全,不会覆盖别人的改动):
    git push origin pr1-branch --force-with-lease
    

6. 收尾:关闭PR2

现在PR1已经包含了PR2的所有改动,直接在代码托管平台(GitHub/GitLab之类)上关闭PR2就行,顺便可以加个说明:“改动已合并到PR1”。


方法二:PR1和PR2是同一个分支(误开了两个PR)

如果你是在PR1的分支上直接提交了新commit,然后不小心又开了PR2,那流程更简单:

1. 切换到这个分支,启动交互式变基

git checkout your-branch
git rebase -i HEAD~2

这里HEAD~2表示选中最近的两个commit(就是PR1和PR2对应的那两个)。

2. 合并两个commit

在弹出的编辑器里,把第二个commit(PR2的)前面的pick改成squash,比如:

pick def5678 新增购物车功能(PR1的commit信息)
squash abc1234 修复购物车数量计算错误(PR2的commit信息)

保存关闭后,编辑合并后的commit信息,确认后保存。

3. 强制推送到远程

git push origin your-branch --force-with-lease

这样PR1会自动更新为合并后的commit,然后去关闭PR2就搞定了。


通用技巧:合并最近两个PR的交互式变基流程

以后不管遇到什么情况,要合并最近两个有依赖关系的PR,都可以按这个通用步骤来:

  • 先确保目标分支(要合并到的那个PR的分支)是最新的:git checkout target-branch && git pull
  • 切换到要被合并的PR分支:git checkout source-branch
  • 启动交互式变基:git rebase -i target-branch
  • 在编辑器里把source-branch的commit标记为squash(保留commit信息)或fixup(直接丢弃该commit的信息,用目标分支的commit信息)
  • 保存后编辑合并信息,完成变基
  • 合并到目标分支并强制推送,最后关闭多余的PR

小提醒:如果你的PR已经被团队成员review过,修改commit历史前最好和大家打个招呼,避免影响别人的工作哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 00:17:27