Git Flow困境逃脱指南

本来来自极狐GitLab 资源中心,原文链接:https://resources.gitlab.cn/articles/020183ba-cfc0-4917-b901-248acdcfc92f。

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn/install?channel=content&utm_source=csdn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。

更多关于极狐GitLab :https://gitlab.cn 或者 DevOps 的最佳实践,可以关注文末的极狐GitLab 公众号。

Git 简化了分支和合并,使得软件开发团队从 SVN 等其他源码控制工具中脱离出来,采用工作流来简化开发。然而,从其他版本控制系统转移到 Git 的组织可能难以确定有效的工作流程。极狐GitLab Flow 通过将 Git 工作流与议题跟踪系统集成,创造了一种无缝的软件开发方法。

有时候,你可能拥有 “过多” 的好东西。Git flow 当然也是如此,这是一个著名的软件开发工作流程,它提供了多种选择,但却会让用户陷入困境。

为了消除容易引起混乱的复杂性、简化开发流程,我们推出了极狐GitLab Flow。极狐GitLab Flow 为 Git 工作引入了议题跟踪功能,简化了流程,消除了混乱。

极狐GitLab 公众号后台回复新手指南获取极狐GitLab 新手指南一份。

Git flow的问题


要想了解极狐GitLab Flow 的工作原理,不妨先看看它试图解决的问题。在 Git flow 中,有两个主要的痛点,都涉及到不必要的分支切换。

Git flow 强制开发者使用develop分支而不是master分支。因为大多数工具都默认使用 master,所以涉及到大量的分支切换。另一个让人烦恼的地方是 hotfix 和release分支,这对大多数组织来说显得过于繁琐,而对实践持续交付(CD)的公司来说则完全没有必要。

这让我们想到了极狐GitLab Flow —— 一个让一切都变得简单和包容的工作流程。

极狐GitLab Flow:一个简化的分支策略


极狐GitLab Flow 将特性驱动开发和特性分支与议题跟踪相结合。极狐GitLab Flow 将 Git 工作流程与议题跟踪系统整合在一起,提供了一种简单、透明、高效的 Git 工作方式。

极狐GitLab Flow 是一种让代码和议题跟踪器之间的关系更加透明的方式。代码库的每一次修改都是从议题跟踪系统中的一个议题开始的。当你完成编码或想要讨论代码时,你可以打开一个 Merge Request (合并请求)。当代码审核完成后,审核员会将该分支合并到 Master 中。通过使用 GitLab 工作流,团队可以通过将主分支合并到production分支来部署代码,同时可以快速识别生产环境中的代码版本,使他们能够快速识别哪些代码在生产中。在这个工作流程中,提交只流向下游,确保所有的东西在全面的环境中测试。

极狐GitLab Flow 避免了 Git flow 所伴随的发布、标记和合并的额外开销。

简而言之,极狐GitLab Flow:

所有的功能和修正都会先进入 master;
允许production或stable的分支;
错误修复/快速修复补丁是从 master 中拣选(cherry-picked)出来的。

分解软件开发的10个阶段


极狐GitLab Flow 将构思推进到生产阶段的方式,并让每个人都能了解所需信息并提高工作效率。我们确定了开发过程中必须经历的 10 大关键阶段,以使软件能够投入生产。极狐GitLab Flow 可以轻松地支持所有阶段进行核算,同时继续提供开发生命周期的全面可见性。

广义上讲,极狐GitLab Flow 主要分为三个领域:feature (特性)分支、production (生产)分支和release (发布)分支。

feature分支是实际开发工作发生的地方。开发者创建一个针对功能或 bug 修复的分支,并在那里完成所有工作,而不是在 master 分支上。一旦工作完成,开发人员就创建一个 Merge Request (合并请求),将 feature 分支的内容合并到 master 分支。

production分支本质上是一个整体–一个单一的长期运行的生产发布分支,而不是单个分支。可以为每个可部署的版本创建一个标签,以便跟踪这些细节。

最后,如果你向客户发布软件,那么release分支是关键。每发布一个新版本,你都会从master创建一个稳定分支,并决定一个标签。如果你需要做一个补丁发布,一定要拣选(cherry-pick)出关键的 bug 修复,不要直接提交到稳定分支。

遵循准则


想让极狐GitLab Flow 发挥最大的作用?这里有几条准则强调了测试的重要性,即使在CI环境中也是如此。

测试所有的 Commits (提交)。不要等到所有的东西都合并到master分支后才进行测试。每次提交都进行测试,以便在过程中更早发现问题。
在所有的 Commits (提交)上运行一次全部的测试用例,即使你必须并行运行测试。
[代码审查]先于[合并到master]。不要指望一周结束前的测试查出所有的问题。随着提交进行代码审核,这样更容易查出问题,其他同事也可以集思广益提出解决办法。

极狐GitLab Flow有什么好处?


极狐GitLab Flow 提供了一种简单、透明、高效的 Git 工作方式。使用极狐GitLab Flow,开发者可以在不同的环境中协作并维护多个版本的软件。极狐GitLab Flow 减少了发布、标记和合并的开销(这是其他类型 Git 工作流程中常见的挑战),创造了一种更简单的代码部署方式。提交流向下游,确保每一行代码都在所有环境中得到测试。任何规模的团队都可以使用极狐GitLab FLow,它具有适应各种需求和挑战的灵活性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/800365.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面板数据回归模型(二)房价的影响因素分析

1.数据来源 本文选择我国出一线城市房价均值、新一线城市房价均值、二线城市房价均值、货币供应量和利率。选取2002-2018年的数据,共17组数据,由于数据的自然对数变换不改变原有的协整关系,并能使其趋势线性化,消除时间序列中存在的异方差现象,所以对所有数据取其自然对数…

Java多线程+分治求和,太牛了

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen 最近的一个面试,shigen简直被吊打,简历上写了熟悉高并发…

大模型实践:如何选择适合自己场景的Prompt框架?

1. 选择适合自己场景的Prompt框架需要考虑哪些因素? 以下是一些关键的步骤和考虑点: 理解任务需求:首先,明确你的任务类型(如文本生成、问答、文本分类、机器翻译等)和具体需求。不同的任务可能需要不同类…

蓝桥杯DFS-最大数字

解题思路 我们从最高位开始要利用自己的1号操作和2号操作保证当前这个数位的数一定要尽可能最大。 然后分别考虑两种操作,首先两种操作不可能混用,因为它们是抵消的效果,所以要么对这个数全使用1操作,要么2操作。假设某个数位的…

[论文精读]Spatio-Temporal Graph Convolution for Resting-State fMRI Analysis

论文网址:Spatio-Temporal Graph Convolution for Resting-State fMRI Analysis | SpringerLink 论文代码:GitHub - sgadgil6/cnslab_fmri: CNS (Computational Neuroscience) Lab project for age/sex classification of fMRI scans 英文是纯手打的&a…

键值数据库Redis——Windows环境下载安装+命令行基本操作+Java操纵Redis

文章目录 前言一、下载与安装(Windows环境)** 检查数据库连接状态 **** 查看Redis数据库信息 ** 二、Redis五种数据结构与基本操作获取所有的key——keys *清空所有的key——flushall2.1 字符串操作2.2 散列操作2.3 列表操作2.4 集合操作2.5 位图操作 三…

小核引导RTOS---RISC-V C906

文章目录 参考日志编译框架目标fip 启动流程fip文件组成BL2程序 总结思考备注 参考 参考1. How does FSBL load the FreeRTOS on the small core and execute it?参考2. Duo now supports big and little cores?Come and play!Milk-V Duo, start!参考3. 使用uboo…

【Mybatis】Mybatis 二级缓存全详解教程

【Mybatis-Plus】Mybatis-Plus 二级缓存全详解 一,Mybatis-Plus介绍 MyBatis-Plus(简称MP)是一个基于 MyBatis 的增强工具,它简化了 MyBatis 的开发,并且提供了许多便利的功能,帮助开发者更高效地进行持久…

数字电路基础(Digital Circuit Basis )

目录 一、什么是数字电路? (Digital Circuit ) 1.概念 2.分类 3.优点 4.数电与模电的区别 二、数制 (十进制:Decimal) 1.概述 2.进位制 3.基数 4.位权 5.二进制的算术运算 三、编码 (二进制:Binary ) 1.什…

Windows下Oracle表死锁处理过程

Windows下Oracle表死锁处理过程 1.问题现象 Oracle 12c数据库安装在Windows下,在一个大数据量表批量更新操作时,异常中断。表锁死,查询访问长时间无反应。 2.处理过程 (1)锁表对象 select object_name as 对象名称…

解释一下Python中的命名空间和作用域

解释一下Python中的命名空间和作用域 在Python中,命名空间和作用域是两个非常重要的概念,它们对于理解变量的可见性和生命周期至关重要。下面我将详细解释这两个概念。 一、命名空间 命名空间是一个字典,它用于存储变量名(键&a…

[蓝桥杯 2023 省 A]幸运数有奖问答

[蓝桥杯 2023 省 A] 填空问题 题目描述 A. 幸运数 小蓝认为如果一个数含有偶数个数位,并且前面一半的数位之和等于后面一半的数位之和,则这个数是他的幸运数字。例如 2314 2314 2314 是一个幸运数字,因为它有 4 4 4 个数位,并…

JAVA8新特性

JAVA8新特性 1、函数式编程 主要关注对数据进行了什么操作 1.1 优点 代码简洁 容易理解 易于“并发编程” 2、lamada表达式 (参数列表)->{代码}未使用 new Thread(new Runnable() {Overridepublic void run() {System.out.println(123123123);}}).start(); 使用…

CSS常见样式

字体相关的样式 <style>div{/* 斜体 */font-style: italic;/* 加粗 100-900*/font-weight: 900;/* 字体大小 */font-size: 20px;/* 声明字体格式 */font-family: "微软雅黑";}</style> div内部文字垂直居中 只需要将行高设为其height的大小即可。 div{…

B2985A是德科技B2985A静电计

181/2461/8938产品概述&#xff1a; B2985A 静电计/高阻表具有 0.01 fA&#xff08;0.01 x 10-15 A&#xff09;的分辨率&#xff0c;可帮助您信心十足地测量小电流和最高可达 10 PΩ&#xff08;10 x 1015 Ω&#xff09;的大电阻。 它拥有 4.3 英寸 LCD 彩色液晶屏并配有图形…

WebGL异步绘制多点

异步绘制线段 1.先画一个点 2.一秒钟后&#xff0c;在左下角画一个点 3.两秒钟后&#xff0c;我再画一条线段 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"…

redis的简单操作

redis中string的操作 安装 下载可视化软件&#xff1a;https://gitee.com/qishibo/AnotherRedisDesktopManager/releases。 Mac安装redis&#xff1a; brew install redisWindows安装redis: 安装包下载地址&#xff1a;https://github.com/tporadowski/redis/releases 1.…

C++:类和对象(上)

1.类的引入 C语言结构体中只能定义变量&#xff0c;在C中&#xff0c;结构体内不仅可以定义变量&#xff0c;也可以定义函数&#xff0c;同时C引入class关键字来也能实现这一作用&#xff0c;C更喜欢用class class/struct Stack {int * _array;size_t _capacity;size_t _size…

3.5、文本显示(Text/Span)

创建文本 Text 可通过以下两种方式来创建: string 字符串 效果图 Text(我是一段文本)引用 Resource 资源 资源引用类型可以通过 $r 创建 Resource 类型对象,文件位置为 /resources/base/element/string.json。 引用的资源位于:src/main/resources/base/element/string…

海外仓订单管理存在哪些问题?利用位像素海外仓系统能提升订单管理效率吗?

随着跨境电商业务的蓬勃发展&#xff0c;海外仓的订单量日益攀升&#xff0c;在海外仓的运作中&#xff0c;订单管理是一项看似简单实则复杂繁琐的任务。 然而&#xff0c;大批量订单的涌入&#xff0c;让其管理背后隐藏的问题也随机出现。让我们一起来看看有哪些问题吧&#…