您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

云原生技术:Git到底该建多少个分支?

时间:2021-03-04 09:24:07  来源:  作者:

目前世界上大部分公司都使用Git来控制软件开发的版本,那么我们用Git到底该建多少个分支呢?2010年Vincent Driessen在《A successful Git branching model》一文中提出了一个GitFlow的工作流程模型。

云原生技术:Git到底该建多少个分支?

 

核心分支

在GitFlow方案中,最核心的分支有两个:主分支(Master)分支和开发(Develop)分支。当Develop分支的源码到达了一个可以发布的稳定状态时,所有的代码变更需要合并到Master分支上,然后标记一个版本号。

云原生技术:Git到底该建多少个分支?

Master分支和Develop分支

除了核心分支,GitFlow模型还提出了几种辅助性分支,包括功能(Feature)分支、发布(Release)分支、热修复(HotFix)分支。

云原生技术:Git到底该建多少个分支?

Feature分支要合并到Develop分支

功能分支是为将来要发布的版本开发新的功能,只要这个功能处于开发状态,这个分支就会存在,最终会合并到Develop分支,或者被取消(比如产品经理改变了主意)。

云原生技术:Git到底该建多少个分支?

Release分支从Develop分支创建,最终合并到Develop分支和Master分支

Release分支是从Develop分支创建,是为新产品的发布做准备的,将即将发布的功能打包在这个分支。打完Release分支之后,可以在这个Release分支上测试及修改Bug。最后Release分支要合并到Develop和Master分支上。

云原生技术:Git到底该建多少个分支?

Hotfix分支从Master分支创建,再合并到Master分支和Develop分支

热修复分支基于Master分支创建,一般用于线上bug的紧急修复。开发完后需要合并回Master和Develop分支。

不过GitFlow这个模型已经提出了10多年,当时的软件开发环境和现在大不相同,Vincent Driessen也意识到了这一点,在2020年他说世界上没有万能药存在,无论选择哪种流程,需要考虑自己的情况。

If, however, you are building software that is explicitly versioned, or if you need to support multiple versions of your software in the wild, then git-flow may still be as good of a fit to your team as it has been to people in the last 10 years. In that case, please read on.

To conclude, always remember that panaceas don't exist. Consider your own context. Don't be hating. Decide for yourself.

Vincent Driessen,March 5, 2020.

GitFlow模型相对比较复杂,比较适合需要同时维护多个版本的情况,不太适用于现在的互联网开发。Github Flow流程就非常简单。

云原生技术:Git到底该建多少个分支?

Github Flow

我自己团队的情况是这样的:除了开发环境以外,还有测试环境、预生产环境和生产环境。Develop分支对应的是测试环境,Release分支对应的是预生产环境,Master分支对应的是生产环境。Release分支的代码基本不会修改,主要是为了触发在预生产环境的自动化部署流程而设的。

我们正常的发布流程是:测试环境 -> 预生产环境 -> 生产环境。如果遇到线上紧急问题需要修复,那么就从Master分支上拉下代码紧急修复,线上问题处理好了,再合并到Develop分支上,相当于GitFlow模型中的HotFix分支。

总之,无论选择怎样的Git流程,适合自己的才是最好的。

我会持续更新关于物联网、云原生以及数字科技方面的文章,用简单的语言描述复杂的技术,也会偶尔发表一下对IT产业的看法,欢迎大家关注,谢谢。



Tags:Git   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
开源最前线(ID:OpenSourceTop) 猿妹编译项目地址: https://github.com/restic/restic全球知名代码托管平台 GitHub 今天就重磅发布了今年的年度报告——《2021 年度 O...【详细内容】
2021-12-17  Tags: Git  点击:(9)  评论:(0)  加入收藏
github加速利器,解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。复杂的网络问题github连接不上 代码pull/push失败...【详细内容】
2021-11-12  Tags: Git  点击:(76)  评论:(0)  加入收藏
一、国内访问github慢的原因GitHub在国内访问速度慢的问题原因有很多,但最直接和最主要的原因是GitHub的分发加速网络的域名遭到dns污染。可通过修改系统hosts文件的办法,绕过...【详细内容】
2021-09-15  Tags: Git  点击:(94)  评论:(0)  加入收藏
本文推荐 GitHub 和 Gitee 上比较热门的电商开源项目,包括前后端分离、微服务架构等,同时具备 PC、移动端、小程序。01. 新蜂电商第一个电商项目:newbee-mall,这个系统的名称是...【详细内容】
2021-09-14  Tags: Git  点击:(71)  评论:(0)  加入收藏
《GitHub精选》是我们分享Github中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个谷歌代码风格指南项目——styleguide。 严谨的代码风...【详细内容】
2021-09-08  Tags: Git  点击:(84)  评论:(0)  加入收藏
今天给大家推荐Github上排行第一的库,可以看到目前已经有329k的星星了。它其实是一个非盈利机构搭建的一个沉浸式学习网站,主要的前端的一些东西,当然也有部分后端的内容。 网...【详细内容】
2021-09-03  Tags: Git  点击:(69)  评论:(0)  加入收藏
开源最前线(ID:OpenSourceTop) 猿妹编译链接:https://github.com/FavioVazquez/ds-cheatsheets 一位来自瑞典的程序员Andreas Kling,前不久他发表了一篇《I quit my job to focus...【详细内容】
2021-08-25  Tags: Git  点击:(99)  评论:(0)  加入收藏
一、安装PicGoPicGo是一款图片上传的工具,目前支持微博图床,七牛图床,腾讯云,又拍云,GitHub等图床,支持配置自定义访问链接,结合typora使用非常方便,当在typora中插入图片时,可以实现...【详细内容】
2021-08-04  Tags: Git  点击:(73)  评论:(0)  加入收藏
无兄弟,不篮球;无github,不代码。github和stackoverflow是程序员们的最爱,哪怕是github总是在抽疯,虐了程序员们千百遍,但他们还是想各种办法艰难地在github分享他们优秀的代码,...【详细内容】
2021-07-26  Tags: Git  点击:(95)  评论:(0)  加入收藏
github是一个面向开源及私有软件项目的托管平台,什么叫面向开源呢?说白了就是把代码共享,微软以前并不秉持着开源的态度,企图以windows占有率坐拥江山,可惜开源共享的大势谁都不能阻挡,哪怕是微软帝国。这不,斥资把这个国际...【详细内容】
2021-07-21  Tags: Git  点击:(133)  评论:(0)  加入收藏
▌简易百科推荐
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(1)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(9)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(19)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(23)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(24)  评论:(0)  加入收藏
一个项目的大部分API,测试用例在参数和参数值等信息会有很多相似的地方。我们可以复制API,复制用例来快速生成,然后做细微调整既可以满足我们的测试需求1.复制API:在菜单发布单...【详细内容】
2021-12-14  AutoMeter    Tags:AutoMeter   点击:(20)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条