《Git 系列》Git 工作流,你知道几种?

article/2025/10/26 2:33:41

前言

Git 可能是对我们日常开发影响最大的软件了。

我们使用 Git,肯定要采用某个工作流来作为我们的开发流程。

不同的开发流程,有不同的适用场景, 没有银弹

Workflow - 工作流

  • Git flow
  • GitHub flow
  • Trunk-based development

Git flow

下面这幅图广为流传,可能是很多团队默认的 Git 工作流。

这个工作流是 2010 年这篇文章 A successful Git branching model 提出的,距今也有十几年了。

主要特点:

  • 分支很多,有多种类型的分支:feature, develop, release, hotfixs
  • 多个分支同时长时间存在,并行开发;当合并这些分支的时候,可能要解决大量的合并冲突
  • feature 分支需要一段时间才能合并到主干分支,无法做到真正的持续集成&持续发布
  • 适合要同时维护多个版本的场景(比如,同一个前端项目,需要同时维护 Android端、iOS 端;一个服务端项目,给不同的客户做了定制化开发,需要维护多个版本;现在常见的应用类型是 Web 应用,通常只有一个版本,所以不适用这种工作流)

在这里插入图片描述

GitHub flow

在这里插入图片描述

GitHub flow is a lightweight, branch-based workflow. The GitHub flow is useful for everyone, not just developers.
For example, here at GitHub, we use GitHub flow for our site policy, documentation, and roadmap.
GitHub flow 是一个轻量级的、基于分支的工作流。
GitHub flow 对每个人都有用,不止是开发者。

主要特点:

  • 分支比 Git flow 少很多
  • 开发新功能,从 master 分支拉取 feature 分支;功能完成后,提交 Pull Request,代码审核后再合并到 master 分支,最后删除 feature 分支
  • 版本管理更简单、更轻量,更符合持续集成的思想

顺着持续集成的思想,如果我们把 GitHub flow 分支模型做得再极致一点:

  • 我们不要 feature 分支;
  • 或者把 feature 分支只留在本地,不再使用 Pull Request 而是直接 push 到远程 master 分支;

我们就做到了 Trunk based Development

Trunk-Based Development

Paul Hammant2013-04-05 发表了文章 What is Trunk-Based Development?。

在这篇文章中提出了 Trunk-Based Development - TBD基于主干分支开发 的工作流。

主要特点:

  • 大部分时间只有一个分支:主干分支 Trunk
  • 尽量不新建开发分支,任何改动直接提交到主干分支
  • 必须新建开发分支的情况下,开发分支最多存活几天,然后要合并到主干分支,最后删除掉开发分支
  • 任何代码提交到主干分支时,先在本地构建整个项目;只有构建通过了,才能提交到主干分支
  • 分支越少 --> 合并操作就越少 -->代码合并冲突也越少
  • 因为只有一个分支(即主干分支),保证了最新代码都在这个分支上,真正做到了持续集成&持续交付
  • 适合不需要维护多个版本的开发场景,比如服务端的 Web 应用,基本上只需要维护一个版本

不鼓励在开发分支上长时间开发,再合并到主干分支(冲突很多):
在这里插入图片描述

小团队开发模式:不断提交代码到主干分支
在这里插入图片描述

大规模开发模式:在存在时间短的开发分支上开发,然后合并回主干分支
在这里插入图片描述

参考资料

  1. https://nvie.com/posts/a-successful-git-branching-model/
  2. https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows
  3. https://docs.github.com/en/get-started/quickstart/github-flow
  4. https://trunkbaseddevelopment.com/

http://chatgpt.dhexx.cn/article/CaTtbtxX.shtml

相关文章

git的各种工作流

Git工作流可以理解为团队成员遵守的一种代码管理方案,在Git中有以下几种常见工作流: 集中式工作流功能开发工作流Gitflow工作流Forking工作流 1)集中式工作流 这种工作方式跟svn类似,它只有一个master分支,开发者会…

Git工作流(随笔)

目录 前言 一、工作流概述 1、概念 2、分类 二、集中式工作流 1、概述 2、介绍 3、操作过程 三、功能分支工作流 1、概述 2、介绍 3、操作过程 1)创建远程分支 2)删除远程分支 四、GitFlow工作流 1、概述 2、介绍 3、操作过程 五、Forki…

git工作流

目录 一、什么是gitFlow工作流二、操作1.(Feature branches)功能分支1.1创建功能分支1.2完成功能分支 2.(Release branches)发布分支3.(Hotfix branches)修复分支 三、例子1、创建develop分支2、张三和罗翔…

Flask+Vue+ElementUI开源框架推荐

项目介绍 一款 Python 语言基于Flask、Vue2.x、ElementUI、MySQL等框架精心打造的一款高性能的前后端分离架构敏捷开发框架,可快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,框架自研了一套个性化的图片上传组件&#x…

实用 | 整理了 34 个最火的 Python 开源框架

点击上方“小白学视觉”,选择加"星标"或“置顶” 重磅干货,第一时间送达本文转自|视觉算法 我们从近 10000 个 Python 开源框架中评价整理的 34 个最为好用的开源框架,它们细分可以分为 Python Toolkit、Web、Terminal、Code Edito…

Python开源框架简介

前言 今天给大家带来了12个在GitHub等开源网站中最受欢迎的Python开源框架。如果你正在学习python,那么这12个开源框架,千万别错过,这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试&…

推荐 6 个 yyds 的开源 Python Web 框架

提到 Python 的 Web 框架,第一反应就是老三样,Django,Flask 和 Tornado。如果按流行度来排名的话,应该也是这个顺序。 但是今天重点介绍的框架是FastAPI,现在很多公司招聘的要求都需要会这个框架,非常值得…

22个受欢迎的Python不同类型开源框架

阅读网站源代码需要一定的编程基础,但有一些通用步骤可以帮助你理解: 了解编程语言:你需要了解网站源代码使用的编程语言,比如HTML、钢性铸铁和java描述语言。使用开发者工具:你可以使用浏览器 的开发者工具来查看网站…

最受欢迎 Top 12 Python 开源框架,你都用过吗?| 原力计划

作者 | 学Python的阿勇 责编 | 夕颜 出品 | CSDN博客 今天给大家带来了12个在GitHub等开源网站中最受欢迎的Python开源框架。如果你正在学习python,那么这12个开源框架,千万别错过,这些框架包括事件I/O,OLAP,Web开发&a…

python开源web项目-15个最受欢迎的Python开源框架(转载)

一、Django: Python Web应用开发框架 Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的, 即是CMS(内容管理系统)软件。并于2005年7月在B…

2022 全栈开发报告:Python “火”得实至名归、前端框架依旧是“三巨头”

随着科技行业的日新月异,许多企业对于全栈开发人员的需求持续高涨——全栈开发人员好比“全能选手”,具备解决软件开发过程中各个层面的各种问题的能力:既能开发客户端应用,也能搞服务器端应用,甚至产品设计也是他们来…

最受欢迎的Python开源框架有哪些?

导读今年年初,有一件科学界的大事儿曾刷爆朋友圈:引力波的发现。这是LIGO首次直接探测到引力波和首次观测到双黑洞碰撞与并合,探测到的引力波是由13亿光年之外的两颗黑洞在合并的最后阶段产生的,经过13亿光年的时空旅行,最后被美国的“激光干涉引力波天文台”(LIGO)的两台…

python数据库框架_目前最受欢迎的12个Python开源框架

1 Django Django是一款用Python语言写的免费开源的 Python Web应用开发框架,它遵循模型 -视图-控制器(MVC)的架构模式。它是由非营利Django维护软件基金会(DSF)和3条款BSD许可下可用,鼓励快速发展和实用的设计。Django同时是一款在数据库功能、后台功能、末班系统、网址匹配…

python前端框架有哪些_从GitHub中整理出来的15个最受欢迎的Python开源框架,你喜欢哪个...

从GitHub中整理出的15个最受欢迎的Python开源框架。这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等。 Django: Python Web应用开发框架 从GitHub中整理出来的15个最受欢迎的Python开源框架,你喜欢哪个 Django 应该是最出名的Python框架,GAE甚至Erlang都…

7 款 Python 开源框架的优劣总结

内容源于网络,版权归原作者所有 学习任何一门开发语言都离不开框架,一个框架就好比是一个毛坯房,只需要我们装修就可以入住。如果没有框架我们就只能一砖一瓦的去盖楼房了。框架的种类很多,具体选择要根据实际的业务情况。下面就简…

【学习】python开源框架

1.Django: Python Web应用开发框架,它最出名的是其全自动化的管理后台:只需要使用起ORM,做简单的对象定义,它就能自动生成数据库结构、以及全功能的管理后台。 2. Diesel:基于Greenlet的事件I/O框架,Diesel…

15个最受欢迎的Python开源框架(转载)

一、Django: Python Web应用开发框架 Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的, 即是CMS…

推荐 5 个 yyds 的开源 Python Web 框架

提到 Python 的 Web 框架,第一反应就是老三样,Django,Flask 和 Tornado。如果按流行度来排名的话,应该也是这个顺序。 在 2016 年,发布了一款 Web 框架,叫 Sanic,表现还不错,应该算…

最受欢迎的12个Python开源框架,还没用过你就OUT了!!!

今天给大家带来了12个在GitHub等开源网站中最受欢迎的Python开源框架。如果你正在学习python,那么这12个开源框架,千万别错过,这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试&#xff0…

目前最受欢迎的12个Python开源框架,你有用过吗?

今天给大家带来了12个在GitHub等开源网站中最受欢迎的Python开源框架。如果你正在学习python,那么这12个开源框架,千万别错过,这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试&#xff0…