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

如何将热修复合并至多发布分支并保持Git历史一致?

分支治理与热修复同步优化方案

核心问题分析

你当前用Bitbucket Sync向下同步的方式,本质是生成冗余的合并提交,这会让分支历史变得混乱——虽然代码内容一致,但Git的提交历史追踪、分支状态对比完全失效,后续排查问题、回溯版本会非常麻烦。

最优实践方案

1. 统一热修复入口:从最底层分支发起Hotfix

所有热修复都从release/dev分支创建独立的hotfix/xxx分支,修复完成后:

  • 先PR合并到release/dev,经过开发团队验证
  • 再通过**线性合并(rebase + 快进合并)**依次向上同步到release/staging、release/uat、release/production
    • 操作示例:git checkout release/staging && git rebase release/dev,解决冲突后推送到远程(需要团队开启分支rebase权限)
    • 这种方式能保证各分支的提交历史完全线性,不会产生冗余合并记录

2. 紧急场景处理:直接在生产/uat修复后的同步

如果遇到必须直接在release/production或release/uat上修复的紧急问题:

  • 修复完成后,从该修复提交创建新的hotfix/xxx-cherrypick分支
  • 用git cherry-pick命令将修复提交精准复制到上层分支(比如生产修复后,依次复制到uat、staging、dev)
  • 每个复制后的提交都通过PR走对应环境的验证流程,避免直接同步带来的冗余合并

3. 禁用Bitbucket Sync的向下同步功能

Sync功能本质是强制合并,会破坏分支历史的线性关系,建议关闭该功能,改用上述rebase或cherry-pick方式,保证每个分支的提交历史清晰可追溯。

为什么不建议分别PR到各主分支?

如果给每个主分支单独PR热修复,会导致同一个修复出现多个独立提交,后续版本回溯时,你需要在四个分支里分别查找对应修复记录,维护成本指数级上升;同时还容易出现手动修改不一致的情况,无法保证各分支修复内容完全统一。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 13:43:15