Git分支模型

166 阅读2分钟

一、什么是 Git 分支模型?

Git 分支模型,指的是团队在使用 Git 进行版本管理时,如何规划和管理各类分支,以及分支之间的协作流程和合并策略。一个清晰的分支模型能够提升团队协作效率,降低冲突和出错的概率。


二、分支命名规范

良好的分支命名规范有助于团队成员快速理解分支用途。推荐遵循以下两点:

  1. 见名知意:分支名应清楚表达其用途。
  2. 格式统一:采用 标识符/分支名 格式,分支名全小写,多个单词用 - 连接。

常见分支类型如下表:

分支名功能说明
mainmaster主分支,生产环境
devdevelop开发测试分支,测试环境
feature/xxx新功能开发
fix/xxx一般 bug 修复
hotfix/xxx线上紧急 bug 修复
bugfix/xxx一般 bug 修复
doc/xxx文档修改
style/xxx样式修正
test/xxx临时测试
refactor/xxx代码重构
perf/xxx性能优化
build/xxx构建工具相关修改
ci/xxxCI/CD 配置修改
revert/xxx代码/功能回滚
merge/xxx解决合并冲突

通过 fix/xxxbugfix/xxx 表明一般 bug 修复
使用 hotfix/xxx 表明线上紧急 bug 修复


三、主流分支管理模型

1. Git Flow

Git Flow 是社区广泛采用的分支管理模型,结构清晰,适合中大型项目。主要分支包括:

  • main/master:主分支,代码始终保持可部署状态
  • develop/dev:开发分支,日常开发和测试
  • feature/xxx:新功能开发
  • fix/xxxbugfix/xxx:一般 bug 修复
  • hotfix/xxx:线上紧急 bug 修复
  • 其他如 release/xxxdoc/xxxrefactor/xxx 等分支

优点:流程规范,适合多人协作和频繁发布
缺点:分支较多,流程较繁琐


2. GitHub Flow

GitHub Flow 是 GitHub 官方推荐的轻量级分支管理模型,适合持续部署和小型项目。其结构非常简洁:

  • 主分支:main
  • 其余分支统一使用:feature/xxx

开发新功能或修复 bug 时,从 main 拉出 feature/xxx 分支,开发完成后发起 Pull Request,审核合并后直接部署。

优点:流程简单,适合持续集成
缺点:不适合复杂发布场景


3. GitLab Flow

GitLab Flow 结合了 Git Flow 和 GitHub Flow 的优点,兼顾灵活性与规范性:

  • 主分支:main
  • 开发分支:dev
  • 功能分支:feature/xxx
  • bug 修复分支:fix/xxx

但相对而言分支总类依旧有限,一般适合于小型,功能开发不复杂的项目。