目标
热修流程在两个相反的方向上失败:把每次着急都当紧急事件,或真紧急来临时放弃所有检查。本工作流保住三件不可妥协的事——最小 diff、三道压缩门禁、回植 main——其余全部压缩,让速度来自范围纪律而不是来自跳过安全。
步骤要点
- 先资格审查:确认问题够得上热修门槛(生产影响、无规避方案),并记录授权的事件或工单编号。
- 写最小 diff:只改消除故障所必需的内容,清理与顺手优化一律延后,含测试通常不超过五十行。
- 跑压缩门禁:受影响区域的定向测试、一次完整冒烟、涉鉴权或输入时加安全检查,三个运行 ID 入档。
- 单人聚焦评审:一位资深评审专注于影响半径与回滚安全,同一趟批准 diff 与回滚步骤。
- 部署后对着事件指标验证恢复,随即把修复 cherry-pick 回 main 并附热修记录链接。
排错提示
热修分支越积越厚说明最小 diff 纪律失守,恢复“只修故障本身”的约束并把顺带改动开成普通 PR;评审在慌乱中被跳过是最常见的塌方点,把“回滚方案获批”设为部署前置条件;修复合并进 main 前发布窗口关闭时,用日历提醒跟进回植,防止生产与主干永久分叉。
适用边界
压缩门禁仍需数十分钟,极端秒级故障应依赖回滚而非热修;单人评审换取速度,热修后应安排事后补审,把紧急中放过的风格与设计问题清偿。
代码示例
hotfix-2026-10-22-01 (auth timeout regression)
authorization: INC-2841 (sev1)
diff: 31 lines (12 code, 19 test)
gates:
targeted suite run #4912 PASS (28 tests)
full smoke run #4913 PASS (14 endpoints)
security check PASS (touch: auth input)
review: senior@eng, rollback approved
deploy: 16:41Z rollback: redeploy v1.7.3 tag
metric: auth success 71% -> 99.2% (17 min)
forward-port: main 7ab9e2 (17:05Z)