master未就绪无法发布时如何单独部署生产环境bug修复
生产环境热修复规避未就绪commit 操作方案
规则前提
- 合并到master分支自动部署QA环境
- 任意提交打tag即可触发生产环境部署
- 当前master提交链:
Z(修复提交) → Y(未就绪提交) → X(tag1,生产故障版本)
操作步骤
- 拉取远程最新master代码到本地,保证本地提交记录与远程一致
git pull origin master
- 基于生产故障对应的tag1(即commit X)新建独立热修复分支,避免引入master上的未就绪代码
git checkout -b hotfix/prod-patch tag1
- 拣选已完成的修复提交Z到当前热修复分支,仅保留修复内容,跳过commit Y
git cherry-pick <Z对应的commit哈希值>
如果出现代码冲突,解决冲突后执行git cherry-pick --continue即可完成拣选。
- 本地验证热修复分支功能,确认仅包含tag1原有逻辑+Z的修复内容,无commit Y相关代码,测试通过后在当前热修复分支的最新提交上打生产发布标签tag2
git tag -a tag2 -m "生产热修复:修复XX问题,基于tag1"
- 将tag2推送到远程仓库,触发生产部署即可
git push origin tag2
此时tag2对应的提交链为X → Z,完全不包含未就绪的commit Y,不会将未完成功能部署到生产。
后续收尾
热修复完成后可将hotfix分支合并回master(如果Z已经合并到master可跳过该步),保证修复代码在主分支留存,待commit Y开发完成后再正常走master打版发布流程即可。
内容的提问来源于stack exchange,提问作者Alexsandro Souza
相关产品推荐
相关产品推荐

