IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 2021-09-18 -> 正文阅读

[开发工具]2021-09-18


一、 主流的分支模式

  • TBD(主干开发模式)
  • Git-Flow
  • GitHub-Flow
  • GitLab-Flow

二、TBD主干开发模式

1.定义

即所有开发者,仅在一个开发分支(即主干)上进行协作开发的模式,这种模式下,不允许新建任何长期存在的开发分支,有且仅保留主干分支进行开发协作。
因为没有长期分离的其他开发分支,任何代码变更持续地更新到主干上,在一定程度上避免了 merge 代码带来的困扰。在 TBD 模式下,所有的修改都是在主干上,哪怕是缺陷的修改也是,修改完缺陷后,再 cherry pick 到发布分支上。

2.特点

(1)有且仅有一个开发分支,即主干分支。
(2)所有改动都发生在主干分支。
(3)发布可以从主干拉发布分支。
(4)主干上进行的修复需要根据缺陷的修复策略,确定是否 cherry pick 到对应版本的发布分支。

3.图例

在这里插入图片描述

三、Git-Flow

1.定义

Git-Flow 是为了解决多个不同特性之间并行开发需要的一种工作方式。当开始一个特性的开发工作的时候,从主干上拉出一个特性分支,所有的关于该特性的开发工作都发生在这个特性分支上,当完成该特性的工作之后,再把特性分支合并回代码主路径上,并准备发布。

2.Git-Flow 有以下几种分支:

  • feature 分支:开发者进行功能开发的分支。
  • develop 分支:对开发的功能进行集成的分支。
  • release 分支:负责版本发布的分支。
  • hotfix 分支:对线上缺陷进行修改工作的分支。
  • master:保存最新已发布版本基线的分支。

3.其中Hotfix 的流程如下:

(1)如果发布之后,发现了缺陷,基于 master 拉出一个 hotfix 分支。
在 hotfix 对问题进行修改及验证。
(2)问题的修复合并到 develop 和 master 上。
(3)删除 hotfix 分支。

4.相关图示

在这里插入图片描述

四、GitHub-Flow

1.与Git-Flow对比

(1)GitHub-Flow没有 Git-Flow 中所介绍的 release 分支。对于 GitHub-Flow 来说,发布应该是持续地,当一个版本准备好,它就可以被部署。
(2)在 hotfix 上的处理,GitHub-Flow 认为hotfix 与那些小的特性修改没有任何区别,它的处理方式也应该与之相似。

2.对比Git-Flow特点

相比 Git-Flow 来说,有个显而易见的好处——简单。另一个好处就是持续部署的要求,尽可能快速地发现 master 分支的问题,并能通过 rollback 等机制,快速恢复。将所有内容合到 master 分支中,并经常部署,意味着你可以最小化未发布的代码量,这也是精益开发和持续交付所倡导的最佳实践。部署原本是一件很繁琐的事情,但是因为要频繁做,我们就容易把这样一件事情做简单,以达到持续交付的目的。
虽然 GitHub-Flow 简化了 Git-Flow 的分支模式,但是对于部署、环境、以及发布,该分支模式仍然存在许多未回答的问题,所以,我们希望通过 GitLab-Flow 来为这些问题提供更多的参考。

3.图例

在这里插入图片描述

五、GitLab-Flow

1.与GitHub-Flow对比

GitLab-Flow 相比于 GitHub-Flow 来说,在开发侧的区别不大,只是将pull request改成了 merge request,而 merge request 的用法与 pull request 类似,都可以做为代码评审、获取反馈意见的一种沟通方式。
最大的区别体现在发布侧,即引入了对应生产环境的 production 分支和对应预发环境的pre-production 分支(如果有预发环境的话)。这样,master 分支反映的是部署在集成环境上的代码,pre-production 分支反映的是部署在预发环境的代码,production 分支反映的最新部署在生产环境的代码。

2.图例

在这里插入图片描述

总结

1.四种模式概要

在这里插入图片描述

2.优缺点对比

在这里插入图片描述
在这里插入图片描述

3.相关开发场景

在这里插入图片描述

本文是自己的工作分享,相关经验可供大家参考,如有问题还需指正,谢谢

相关链接:
阿里云技术社区
TBD开发模式
A successful Git branching model

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 08:11:12  更:2021-09-19 08:12:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 3:47:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码