← back

Git flow,Github flow,Gitlab flow

介绍git的三种常用工作流

😀 前言:
之前自己有一套自己的基于git的工作流,参考的来源基本上是公司的手册和网上一些零碎片段,但实际我所使用的git工作流早已有前人总结,并且可以分为三类,本文就详细的介绍一些前人总结好的这三类以及它们所适用的情况
希望可以给你带来一些帮助

🧭 背景说明

我们要讨论的是三种流行的 Git 工作流:

工作流名称常用于平台特点关键词
Git FlowGit / GitLab / GitHub发布节奏、长周期、多分支
GitHub FlowGitHub短周期、持续交付、简单
GitLab FlowGitLab结合 Git Flow 和 CI/CD,支持多环境

在阅读下面的内容之前,建议先阅读一篇别人写的说明:一文弄懂 Gitflow、Github flow、Gitlab flow 的工作流(这篇文章里配了很多图,说的也比较透彻)


🔍 一、Git Flow 工作流(经典老牌)

🌱 概念

由Vincent Driessen提出,是最早系统化的 Git 分支策略。

🧱 分支结构

✅ 优点

❌ 缺点

✅ 适用场景

传统企业项目、稳定迭代、需同时维护多个版本


🧪 二、GitHub Flow(轻量敏捷)

🌱 概念

GitHub 官方推荐的工作流,适合持续交付(Continuous Delivery)场景

🧱 分支结构

工作流程

  1. main分支拉feature/xxx
  2. 提交代码并 Push 到远程
  3. 发起 Pull Request(PR)
  4. 审查通过后合并(推荐 squash merge)
  5. CI 自动部署(可选)

✅ 优点

❌ 缺点

✅ 适用场景

敏捷开发、微服务项目、开源项目、小型团队


🚀 三、GitLab Flow(进阶混合)

🌱 概念

GitLab 官方提出,结合 GitHub Flow 和 Git Flow 的优点,并集成Issue、CI/CD、环境管理

🧱 常见变种

GitLab Flow 不是固定结构,有三种主流变体:

✅ 基于环境的分支(Environment-based)

✅ 基于发布的分支(Release-based)

✅ 基于 Issue 的工作流

✅ 优点

❌ 缺点

✅ 适用场景

使用 GitLab 全套工具链、希望集成 Issue+CI+CD 的 DevOps 团队


📊 三者对比总结

项目Git FlowGitHub FlowGitLab Flow
分支复杂度高(5+ 分支)低(2~3)中(按环境或发布灵活配置)
学习曲线中偏高
支持发版✅ 强❌ 弱✅ 强
支持热修复✅ 分支专用✅ 快速合并主干✅ 快速部署或合并
支持 CI/CD可支持很友好原生支持
推荐使用者企业内大型项目开源、小团队、快节奏GitLab 用户、中大型团队

📌 选择建议(简明版)

你的场景建议使用的工作流
开源项目、个人项目、快速迭代✅ GitHub Flow
企业项目、有正式发布版本✅ Git Flow 或 GitLab Flow
DevOps 团队、GitLab 全家桶✅ GitLab Flow
多人协作 + CI/CD✅ GitHub Flow + CI + Branch Protection

🎁 Bonus:使用建议

Ref

💡 有关git工作流上的问题,欢迎您在底部评论区留言,一起交流~