首页/开发/CI/CD 与发布速查/紧急修复发布流(Hotfix)
发布策略60 条

紧急修复发布流(Hotfix)

线上故障需要绕过常规节奏时:从已发布版本拉修复分支、最小改动、跑必要门禁、快速发布并回合主干;流程可以加速,但验证与记录不能取消。

CI/CD 与发布速查开发更新于 2026-10-13

紧急修复流是什么

线上故障需要绕过常规节奏时的受控流程:从已发布版本的 tag/分支拉修复分支,最小改动、跑必要门禁、快速发布并回合主干。流程可以加速——走审批加急、并行验证,但验证与记录不能取消;每个例外都要在事后补齐。能不能热修取决于两点:故障根因是否清楚、修复面是否隔离,而不是取决于催促的力度。

基本信息

起点已发布版本的 tag/分支
改动范围只含修复必需内容
门禁测试与扫描可以裁剪范围,不跳过
收尾回合主干并补记变更记录

常规与热修对比

维度常规发布热修
分支起点主干最新已发布版本 tag
改动范围当批全部变更仅修复必需
验证完整门禁裁剪范围但不跳过
回合方式自然合并cherry-pick 回主干

典型使用场景

  • 线上 P1/P2 故障:根因明确、修复面清晰时走热修
  • 版本冻结期:大版本临近发布但线上问题等不起,单独出热修
  • 安全补丁:依赖漏洞需要立即出补丁版本
  • 回滚不可行时:数据或兼容原因不能直接回滚,只能向前修
  • 客户端兼容修复:已发版客户端触发的服务端问题
  • 跨版本兼容:热修要同时兼容当前生产的数据结构与在用的客户端版本
  • 定期演练:模拟热修全流程,暴露审批与权限瓶颈并按结果优化

热修流程

热修流程
# 从已发布 tag 拉修复分支
git switch -c hotfix/1.9.1 v1.9.0
# 最小修复并提交,只动必需文件
git commit -m "fix: 结算金额取整"
# 打 tag 触发发布流水线
git tag v1.9.1 && git push origin v1.9.1
# 回合主干,避免下个版本丢掉修复
git switch main && git cherry-pick <fix-commit>
热修流程的每个例外都要在事后补齐:加速的是等待时间,不是评审与验证本身。
热修与常规版本会车:发版前核对两者是否包含对方变更,避免后发版本把已上线的修复覆盖掉。
热修通道要有专属审批与权限:走捷径不等于绕过审计,每次热修都留下可追溯记录。

易错点

  • 热修分支不够回合主干:下个版本把修复丢掉,故障复发
  • 发布分支上直接改代码不留 tag:线上跑的到底是什么版本说不清楚
  • 热修绕过全部门禁:修复本身引入新问题,至少保留冒烟与关键扫描
  • 热修没有通知相关方:后续发布不知情,产生冲突或重复修复,发布记录要广播
  • 热修期间并行合并其他变更:冲突叠加无法归因,修复分支保持冻结

数据来源与参考

  • GitLab Docs《GitLab Flow》
  • DORA《Accelerate State of DevOps Report》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌