You need to enable JavaScript to run this app. 如何将Git的qa分支内容完整覆盖到staging分支且保留staging提交记录?
优惠活动
大模型
产品
解决方案
定价
更多

如何将Git的qa分支内容完整覆盖到staging分支且保留staging提交记录?

方案适配性结论

你检索到的操作方案完全适配你的场景,且恰好可以满足你不丢失staging分支历史提交记录的需求。

方案原理说明

这是Git中「用一个分支全量覆盖另一个分支,同时保留被覆盖分支历史」的标准实现逻辑,每一步的作用如下:

  • git checkout qa:切换到待迁移内容的源分支qa
  • git merge -s ours staging:使用ours合并策略执行合并,这个策略会完全保留当前qa分支的所有代码内容,仅把staging分支的所有提交历史并入qa的提交链路中,全程不会产生任何代码变更,也不会出现冲突
  • git checkout staging:切换到目标分支staging
  • git merge qa:此时qa已经包含了staging的全部历史,合并会默认走快进(fast-forward)模式,直接将staging的分支指针移动到qa的最新提交位置即可。最终staging的代码会和qa完全一致,且所有原有历史提交都会完整保留在提交记录中,不会丢失。

操作建议

为了避免操作失误,可提前执行以下操作做兜底备份:

git tag -a staging_before_migrate -m "迁移qa内容前的staging备份"

如果你们的staging分支是受保护的不允许直接推送合并结果,可以在执行完git merge -s ours staging并将改动推送到远程qa分支后,提交从qa到staging的PR,走团队审批流程合并即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 20:54:04