Git Flow
Git Flow 是一个基于 Git 分支的工作流程模型,由 Vincent Driessen 提出。它为不同类型的分支定义了严格的规则,特别适合有计划发布周期的项目。
Git Flow 概述
什么是 Git Flow?
Git Flow 是一套分支管理策略,它定义了一个围绕项目发布的严格分支模型。这个模型为不同类型的分支分配了特定的角色,并定义了它们应该如何以及何时进行交互。
Git Flow 的优势
- 🎯 清晰的分支结构:每种分支都有明确的用途
- 🚀 并行开发:支持多个功能同时开发
- 🔄 稳定的发布流程:规范化的发布管理
- 🐛 快速热修复:紧急问题的快速响应机制
- 📈 可扩展性:适合大型团队和复杂项目
Git Flow 分支模型
主要分支
1. main/master 分支
- 用途:生产环境的稳定代码
- 特点:只包含发布版本的代码
- 操作:只接受来自 release 和 hotfix 分支的合并
2. develop 分支
- 用途:开发环境的集成分支
- 特点:包含下一个发布版本的最新开发成果
- 操作:接受来自 feature 分支的合并
辅助分支
1. Feature 分支
- 命名规范:
feature/功能名称或feature/issue-编号 - 生命周期:从 develop 分支创建,完成后合并回 develop
- 用途:开发新功能
2. Release 分支
- 命名规范:
release/版本号 - 生命周期:从 develop 分支创建,完成后合并到 main 和 develop
- 用途:准备新版本发布
3. Hotfix 分支
- 命名规范:
hotfix/版本号或hotfix/问题描述 - 生命周期:从 main 分支创建,完成后合并到 main 和 develop
- 用途:修复生产环境的紧急问题
Git Flow 工具安装
安装 git-flow 扩展
macOS
Ubuntu/Debian
Windows
验证安装
使用 Git Flow 工具
初始化 Git Flow
初始化过程会询问分支命名约定:
Feature 分支操作
开始新功能
完成功能开发
发布功能分支
Release 分支操作
开始新发布
完成发布
发布 Release 分支
Hotfix 分支操作
开始热修复
完成热修复
手动实现 Git Flow
如果不使用 git-flow 工具,也可以手动实现 Git Flow 工作流:
项目初始化
功能开发流程
发布流程
热修复流程
Git Flow 最佳实践
1. 分支命名规范
2. 提交信息规范
3. 版本标签规范
4. 代码审查流程
Git Flow 自动化
使用脚本自动化
CI/CD 集成
Git Flow 变体
GitHub Flow
简化版的 Git Flow,适合持续部署:
GitLab Flow
结合了 Git Flow 和 GitHub Flow 的优点:
Microsoft Git Flow
适合企业级开发:
故障排除
常见问题
分支状态检查
总结
Git Flow 的核心要点:
分支结构
工作流程
- 🚀 功能开发:feature → develop
- 📦 版本发布:develop → release → main + develop
- 🔥 紧急修复:main → hotfix → main + develop
适用场景
- ✅ 有计划的发布周期
- ✅ 需要维护多个版本
- ✅ 大型团队协作
- ✅ 严格的质量控制
工具选择
- git-flow 扩展:自动化操作
- 手动实现:更好的控制
- GUI 工具:可视化管理
- CI/CD 集成:自动化部署
掌握 Git Flow 后,你就能够:
- 📋 建立规范的开发流程
- 🔄 支持并行功能开发
- 🚀 管理稳定的发布周期
- 🛠️ 快速响应紧急问题
在下一章中,我们将学习 Git 的撤销和恢复操作。