首页 程序笔记 Git版本控制分支策略详细介绍

Git版本控制分支策略详细介绍

版本控制系统帮助开发人员跟踪、管理和组织他们的代码。特别是,它可以帮助开发人员与队友协作编写代码;将提交和分支等功能与特定的原则和策略相结合。有助于团队组织代码并减少管理版本控制所需的时间。

分支策略决定团队如何处理代码分支。有两种不同的分支模式:长寿命和短寿命。

对于具有多个分布式开发团队的长期、高度复杂的项目来说,长期分支是一个不错的选择。长期分支是用于处理某个功能的主线代码的副本或分支。长期分支模式最适合功能隔离开发方法。

短期模式通过短期分支提供了不同的工作方法。与可能需要数周开发时间的长期分支不同,短期分支要求开发人员在几天内集成功能更新。这种分支风格最适合持续集成开发方法。

GitFlow 分支策略

Git flow 是一种流行的 Git 分支策略,旨在简化版本管理,由软件开发人员 Vincent Driessen 于 2010 年引入。它涉及功能分支和多个主分支的使用。它有许多长期的分支和更大的提交。

Git 流策略使用 5 个分支:main、develop、feature、release 和 hotfix。

Main分支

Git flow工作流中主分支的目的是包含可以发布的生产就绪代码。

主分支是在项目开始时创建的,并在整个开发过程中维护。可以在不同的提交处标记分支,以表示代码的不同版本或版本,并且其他分支在经过充分审查和测试后将合并到主分支中。

develop分支

开发分支是在项目开始时创建的,并在整个开发过程中维护,并且包含具有正在测试过程中的新开发功能的预生产代码。

新创建的功能应该基于开发分支,然后在准备测试时合并回来。

future分支

功能分支是 Git flow工作流程中最常见的分支类型。开发新功能时使用它。

在开发新功能时,从开发分支启动一个功能分支,然后在功能完成并正确审核后将更改合并回开发分支。

release分支

准备发布新的生产版本时应使用发布分支。

通常,在发布分支上执行的工作涉及特定于发布新代码的收尾工作和小错误,这些代码应与主开发分支分开解决。

hotfix分支

修补程序分支用于快速解决主分支中的必要更改。

修补程序分支的基础应该是主分支,并且应该合并回主分支和开发分支。

将修补程序分支中的更改合并回开发分支非常重要,以保障下次发布正常。

Git Flow 策略总结

develop分支从main创建 release分支从develop创建 Feature分支创建自develop 当feature完成后,会合并到develop分支中 当release分支完成后,它会被合并到develop和main 如果main分支检测到问题,则会从main创建一个hotfix分支解决 hotfix完成后,将合并到develop和main

GitHub Flow 分支策略

GitHub Flow分支策略是一个相对简单的工作流程。主分支包含可用于生产的代码,其他分支(功能分支)应包含新功能和错误修复的工作,并将在工作完成并正确审核后合并回主分支。

在使用 GitHub Flow分支策略时,应该遵守六个原则,以确保维护良好的代码。

主分支中的任何代码都应该是可部署的。

在主分支之外创建新的描述性命名分支来开发新的功能,例如feature/add-new-payment-types。

将新代码提交到本地分支并定期将工作推送到远程。

要反馈或帮助,或者当你认为工作已准备好合并到主分支时,可以提交一个marge request。

当代码经过审核和批准后,可以将其合并到主分支中。

一旦代码被合并到主分支后,就应该立即部署。

GitHub Flow 的好处

GitHub Flow 是一种非常简单的方法。

由于工作流程的简单性,这种 Git 分支策略可以持续交付和持续集成。

这种 Git 分支策略非常适合小型团队和 Web 应用程序。

GitHub Flow 的挑战

这种 Git 分支策略无法同时支持生产中的多个版本的代码。

缺乏专门的开发分支使得 GitHub Flow 更容易受到生产中错误的影响。

GitHub Flow 是 Git Flow 的更简单替代方案,非常适合小型团队,因为它不需要管理多个版本。

与 Git Flow 不同,该模型没有发布分支。从主分支开始,然后开发人员创建分支,功能分支直接源于主分支,以隔离他们的工作,然后将其合并回主分支。最后删除该功能分支。

该模型背后的主要思想是将主代码保持在恒定的可部署状态,因此可以支持持续集成和持续交付流程。

GitLab Flow和GitFlow的区别

GitLab Flow 是 GitFlow 的更简单替代方案,它将功能驱动开发和功能分支问题跟踪相结合。使用 GitLab Flow,所有功能和修复都会转到主分支,同时启用生产和稳定分支。在 GitLab Flow中,功能分支包含新功能和错误修复的工作,这些工作将在完成、审核和批准后合并回主分支。

GitLab 流程分支策略适用于两种不同类型的发布周期:

版本化发布:每个版本都有一个基于主分支的关联版本分支。错误修复应首先合并到主分支中,然后再cherry-picked到发布分支中。

持续发布:生产分支包含可部署的代码,因此当代码准备好发布时,将其合并到生产分支中。

GitLab Flow 的好处

与 Git Flow分支策略相比,GitLab Flow更简单。

GitLab Flow比 GitHub Flow分支策略更有组织性和结构化。

经过轻微修改,GitLab 流程可以允许持续交付和版本化发布。

GitLab Flow 的挑战

GitLab Flow并不是最简单的 Git 分支策略。

GitLab Flow并不是最结构化的 Git 分支策略,这可能会导致混乱的协作。

1

站心网

版本控制系统帮助开发人员跟踪、管理和组织他们的代码。特别是,它可以帮助开发人员与队友协作编写代码;将..

为您推荐

代码照进现实:对公司管理策略的技术性解构

上学的时候觉得计算机专业的一些理论晦涩难懂,跟现实世界的关联太少,每当遇到一些精妙的设计时都会发出一种感叹:究竟是什么脑袋才能想出这么有意思的东西。一晃工作十年,阅历渐丰,隐约发现其实社会中的一些现象..

ASP.Net Core WebApi几种版本控制对比

一、版本控制的好处:(1)有助于及时推出功能, 而不会破坏现有系统。(2)它还可以帮助为选定的客户提供额外的功能。API 版本控制可以采用不同的方式进行控制,方法如下:(1)在URL 中追加版本或作为查询字符串参..

编写优秀 CSS 代码的 8 个策略

编写基本的CSS和HTML是我们作为Web开发人员学习的首要事情之一。然而,我遇到的很多应用程序显然没有人花时间真正考虑前端开发的长久性和可维护性。我认为这主要是因为许多开发人员对组织CSS / HTML和JavaScript的策..

如何更有策略的选择工作,让自己少奋斗10年?

你好,我是粥左罗,今天我们聊的话题是,职场中的一个个选择,是如何影响你的整个职业生涯的。职场上工作两三年以上的朋友可能都有过这样的感受:感觉 XXX 也没有比我强很多啊,为什么他能赚这么多?其实这不是主观..

C#7.0新语法介绍

一、out输出参数在以前使用out输出参数的时候,必须先定义变量,然后才能使用,例如:先定义一个方法,方法参数是out类型的输出参数:private void DoNoting(out int x, out int y){x = 1;y = 2;}以前版本的写法: /..

EntityFramework(EF) 控制并发和事务防止超卖

在使用 Entity Framework (EF) 时,实现加减库存并避免超卖的关键是正确地控制并发和事务。以下是实现方法:解决超卖的关键点事务管理:使用事务确保加减库存和库存校验是一个原子操作。悲观锁:通过数据库层面的锁..

.Net各版本多线程使用原理和实践

多线程基本概念进程:程序在服务器上运行时,占据的计算资源合集,称之为进程。进程之间不会互相干扰,进程间的通信比较困难(分布式)。线程:程序执行的最小单位。线程也包含自己的计算资源,线程是属于进程的,一..

依赖注入(Dependency Injection)和控制反转(Inversion of Control)在.NET中的实现方式

依赖注入(Dependency Injection)和控制反转(Inversion of Control)是软件开发中两个相关的概念。依赖注入(Dependency Injection):依赖:在软件开发中,一个对象可能依赖于其他对象来完成其工作。这些依赖关系..

主流数据库中间件介绍和对比

目前的数据库中间件有很多,本节将介绍主流的中间件,并从各个维度将其与Mycat进行对比。Mango的中文名是“芒果”,它是一个轻量级的极速数据层访问框架,目前已有十多个大型线上项目在使用它。据称,某一支付系统利..

程序员开发人员常用工具和网站

给大家分享一些程序员开发人员常用工具和网站,我相信这里总有一款工具适合你。排名不分先后~Visual Studio CodeVisual Studio Code官网地址:https://code.visualstudio.com/Visual Studio Code重新定义和优化了代..

类似sms-activate的国外手机验证码接码平台

很多网站需要通过手机验证码才能注册成功,例如最近大火的ChatGPT的官网OpenAI只能使用国外手机号注册。这里推荐几个可以接收国外手机验证码的平台。sms-activatehttps://sms-activate.org/cn站点推荐:ChatGPT手机..

百度文心一言邀请码如何获得?

3月16日下午,百度于北京总部发布了新一代大语言模型、生成式AI产品文心一言。首批用户即可通过邀请测试码,在文心一言官网体验产品,后续将陆续开放给更多用户。邀请码申请方式请往下看。百度文心官网地址:https://..

免费申请SSL证书的网站教程推荐

现在有很多平台可以申请的免费SSL证书让你的网站提供https服务。一些云服务器平台可能也会有一些免费SSL证书的服务。免费SSL证书安全吗?免费SSL证书可以使用,并且在许多情况下是足够安全的。免费SSL证书可以通过Le..

react使用echart图文教程

可以参考ECharts官网的文档:https://echarts.apache.org/handbook/zh/basics/import在React中使用ECharts可以通过以下步骤:安装ECharts库使用npm或者yarn安装ECharts库:npm install echarts --save引入ECharts库..

量化炒股的原理是什么?量化交易策略有哪些?

量化炒股是一种利用计算机程序和数学模型来进行投资决策的方法。它的原理是通过分析历史市场数据、价格走势、技术指标等多种因素,构建数学模型,用以预测未来股市走势和行情。这些模型能够自动执行交易,以实现更高..

头条搜索站长工具网站提交

头条搜索站长平台官网地址:https://zhanzhang.toutiao.com/头条站长是一款提供网站分析和优化建议的工具,可以帮助站长了解其网站的流量情况、用户行为、页面质量等信息,以便对网站进行优化和改进。它的功能和百度..

类似ChatGPT的AI产品有哪些?

在自然语言处理领域,有一些可以替代ChatGPT的工具和框架,以下是一些比较流行的:Transformer-XL:Transformer-XL是由CMU和Google共同开发的自然语言处理模型,具有较好的上下文理解能力和处理长文本的能力。该模型..

echars k线图tooltip formatter没有执行

使用echars生成k线图时,参考官网的示例发现无法修改tooltip的内容,经过研究发现官网示例代码是不正确的。以名为[K 线图刷选]的K线图为例,因为它的示例里有tooltip formatter的实现代码,但是实际上是没有执行的。..

OpenAI发布GPT-4 附注册方法

OpenAI GPT-4官网https://openai.com/research/gpt-4GPT-4官方公告OpenAI团队创建了GPT-4,这是OpenAI在扩大深度学习方面的最新里程碑。GPT-4是一个大型多模态模型(接受图像和文本输入,发出文本输出),虽然在许多..

网站域名年龄对SEO的影响

网站域名年龄对SEO的影响网站域名的年龄可以对搜索引擎优化(SEO)产生影响。一般来说,具有较长历史的域名更容易被搜索引擎认为是可信赖的和有价值的网站。这是因为一个域名在互联网上存在的时间越长,它就越有可能..

发表回复

返回顶部