You need to enable JavaScript to run this app. 如何仅将PR内的差异改动合并到其他不同分支?
优惠活动
大模型
产品
解决方案
定价
更多

如何仅将PR内的差异改动合并到其他不同分支?

解决方案

完全可以仅提取两个分支的差异合并到目标分支,以下是两种比手动复制更规范高效的实现方式:

方案1:git cherry-pick(保留原有提交记录)

适合需要保留你原有开发的每一条commit记录的场景,操作步骤如下:

  • 首先拉取目标分支最新代码并创建新的开发分支:
git checkout release/app2/sprint1
git pull origin release/app2/sprint1
git checkout -b feature/app2/sprint1/task1-port
  • 找到你在feature/app1/sprint1/task1分支上所有个人开发提交的commit哈希,排除掉合并release/app1/sprint1产生的merge commit:
    • 如果你的提交是连续的,比如最早的个人提交哈希是a1b2c3d,最新的个人提交哈希是x8y9z0,执行批量cherry-pick:
    git cherry-pick a1b2c3d^..x8y9z0
    
    • 如果你的提交是零散的,逐个执行git cherry-pick 【commit哈希】即可
  • 执行过程中如果出现代码冲突,解决冲突后执行git cherry-pick --continue即可,直到所有提交移植完成。

方案2:git diff 打补丁(合并为单条提交)

适合不需要保留原有提交记录,只想把所有差异一次性合并的场景,操作步骤如下:

  • 同上先基于最新的release/app2/sprint1创建新的开发分支并切换到该分支
  • 直接提取两个分支的差异并应用到当前工作区:
git diff release/app1/sprint1 feature/app1/sprint1/task1 | git apply -
  • 执行完成后检查工作区的改动是否符合预期,解决可能存在的代码冲突后,直接执行git add、git commit提交即可。

两种方案都可以避免手动复制带来的文件遗漏、权限属性丢失、换行符异常等问题,稳定性和效率远高于手动操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 06:54:05