Git Flow 分支管理详解
Git Flow 是由 Vincent Driessen 提出的一种高效的分支管理模型,适用于中大型项目或有明确发布周期的团队。其核心思想是通过明确的分支角色和严格的生命周期,规范化开发、测试、发布和维护流程。
核心分支结构
- 主分支(
master)- 仅存放生产环境可用的稳定代码。
 - 只能通过合并 
release或hotfix分支更新。 - 每次合并需打标签(
tag),标明版本号(如v1.0.0)。 
 - 开发分支(
develop)- 集成所有新功能的基准分支,代表下一版本的开发状态。
 - 功能分支(
feature/*)和修复分支(hotfix/*)均基于此分支创建。 
 - 辅助分支(临时性,用后删除) 
  
- 功能分支(
feature/\*):开发新功能。 - 发布分支(
release/\*):准备发布的测试和修复。 - 热修复分支(
hotfix/\*):紧急修复生产环境问题。 
 - 功能分支(
 
详细使用流程
1. 初始化 Git Flow
# 安装 git-flow 工具(如未安装)
# macOS: brew install git-flow-avh
# Linux: apt-get install git-flow
git flow init -d  # 使用默认配置初始化仓库
 
默认分支名称为 master(主分支)和 develop(开发分支)。
2. 开发新功能(Feature)
git flow feature start FEATURE_NAME  # 从 develop 创建分支 feature/FEATURE_NAME
# 开发完成后提交并合并
git flow feature finish FEATURE_NAME
 
-  
合并规则:将
feature/*分支合并到develop,并删除原分支。 -  
Commit 规范:
feat(scope): 简短描述功能 # 正文(可选,说明改动细节) # 脚注(可选,关联Issue或Breaking Changes) 
3. 准备发布版本(Release)
git flow release start v1.0.0  # 从 develop 创建分支 release/v1.0.0
# 在 release 分支进行测试、版本号更新、文档完善等
git flow release finish v1.0.0
 
-  
合并规则:
- 自动合并到 
master并打标签v1.0.0。 - 同步回 
develop分支。 - 删除 
release/*分支。 
 - 自动合并到 
 -  
Commit 规范:
chore(release): v1.0.0 - 更新版本号至 1.0.0 - 修复已知测试问题 [Issue #123] 
4. 紧急修复生产问题(Hotfix)
git flow hotfix start v1.0.1  # 从 master 创建分支 hotfix/v1.0.1
# 修复后提交并完成
git flow hotfix finish v1.0.1
 
-  
合并规则:
- 自动合并到 
master并打标签v1.0.1。 - 同步回 
develop分支。 
 - 自动合并到 
 -  
Commit 规范:
fix(auth): 修复用户登录失败问题 因 OAuth 令牌过期时间未正确刷新,导致会话失效。 解决方案:延长令牌有效期至 2 小时。 Closes #456 
Commit Message 规范(Conventional Commits)
-  
格式:
<类型>(<作用域>): <简短描述> [空行] <正文(可选)> [空行] <脚注(可选,如关联Issue)> -  
常用类型:
feat: 新增功能fix: 修复问题docs: 文档变更style: 代码格式/样式调整(不改变逻辑)refactor: 重构代码(非功能变更)test: 测试相关chore: 构建/工具链变更
 -  
示例:
feat(checkout): 支持支付宝支付 新增支付宝 SDK 集成,用户可在结算页选择支付宝。 配置项见 `config/payment.js`。 Related to #789 
最佳实践
- 分支命名:清晰标明类型和目的(如 
feature/user-auth)。 - 频繁同步:定期将 
develop分支合并到长期存在的feature分支。 - 标签语义化:版本号遵循 
语义化版本(SemVer,主版本.次版本.修订号)。 - Code Review:合并到 
develop或master前需经过审核。 
Git Flow 的变体
- GitHub Flow:简化版,仅用 
master和feature分支,适合持续交付。 - GitLab Flow:引入环境分支(如 
production,staging)。 
根据团队规模和发布节奏选择合适的模型!
