Hotfix 分支使用
Hotfix 分支是 Git Flow 中的紧急修复分支,用于快速修复生产环境的关键问题。
什么是 Hotfix 分支
Hotfix 分支的作用:
- 紧急修复生产环境 bug
- 不经过 develop 直接合入 master
- 同时合回 develop 防止再次出现
- 保持版本号连续
Hotfix 分支流程
Bash
master ───●────●────●──→ (tag v1.2.0)
↑
发现严重 bug
│
hotfix/v1.2.1 ●────●
│ │
修复 测试
│ │
↓ ↓
master ──────────────●──→ (tag v1.2.1)
│
↓ 合回
develop ──────────────●──→
创建 Hotfix 分支
Bash
# 从 master 创建(不是 develop!)
git checkout master
git checkout -b hotfix/v1.2.1
# 命名规范:hotfix/<version>
# 版本号递增 patch 版本
Hotfix 工作流程
步骤1:创建 Hotfix 分支
Bash
# 从 master 创建
git checkout master
git pull origin master
git checkout -b hotfix/v1.2.1
步骤2:修复问题
Bash
# 快速修复
git add fix/
git commit -m "fix: 修复安全漏洞 CVE-2026-1234"
# 测试验证
npm run test
步骤3:更新版本号
Bash
# 更新版本号
# v1.2.0 → v1.2.1
git add package.json
git commit -m "chore: 更新版本号至 v1.2.1"
步骤4:合入 master
Bash
git checkout master
git merge --no-ff hotfix/v1.2.1
# 创建标签
git tag -a v1.2.1 -m "Hotfix v1.2.1: 修复安全漏洞"
步骤5:合回 develop
Bash
git checkout develop
git merge --no-ff hotfix/v1.2.1
步骤6:推送和清理
Bash
# 推送所有变更
git push origin master
git push origin develop
git push origin v1.2.1
# 删除 hotfix 分支
git branch -d hotfix/v1.2.1
git push origin --delete hotfix/v1.2.1
Hotfix vs Feature vs Release
| 分支 | 从哪创建 | 合入目标 | 用途 |
|---|---|---|---|
| hotfix | master | master + develop | 紧急修复 |
| feature | develop | develop | 功能开发 |
| release | develop | master + develop | 发布准备 |
Hotfix 适用场景
text
何时使用 Hotfix:
✅ 生产环境关键 bug
✅ 安全漏洞
✅ 数据丢失风险
✅ 系统崩溃问题
何时不用 Hotfix:
❌ 非紧急问题(走正常流程)
❌ 需要大范围修改
❌ 功能性需求
Hotfix 原则
| 原则 | 说明 |
|---|---|
| 快速响应 | 发现问题立即修复 |
| 最小变更 | 只修复问题,不重构 |
| 双向合并 | 合入 master 和 develop |
| 版本递增 | patch 版本递增 |
Hotfix 注意事项
text
# Hotfix 必须合回 develop
# 否则问题可能在下个版本重现
# 正确流程
master → hotfix → master
↓
develop
# 错误流程(只合 master)
master → hotfix → master
↓
不合 develop ← 问题会重现!
# 如果 develop 有 release 分支
git checkout release/v1.3.0
git merge hotfix/v1.2.1
Hotfix 检查清单
text
□ 问题确认紧急
□ 从 master 创建 hotfix 分支
□ 最小化修复范围
□ 测试验证通过
□ 更新版本号
□ 合入 master 并打 tag
□ 合回 develop(或当前 release)
□ 推送所有变更
□ 删除 hotfix 分支
□ 通知相关方
Hotfix 是紧急响应机制,谨慎使用,避免滥用。
要点总结
- Hotfix 从 master 创建(不是 develop)
- 用于紧急修复生产环境问题
- 合入 master 并打 tag
- 必须合回 develop 防止问题重现
- 版本号递增 patch 版本
📝 发现内容有误?点击此处直接编辑