AoneFlow分支模型 |
您所在的位置:网站首页 › 犀牛线生成方管 › AoneFlow分支模型 |
「这是我参与2022首次更文挑战的第21天,活动详情查看:2022首次更文挑战」。 今天学习一下git分支管理模型之阿里的AoneFlow模型,以及阿里的云效代码管理平台 分支管理模型简介使用过git一段时间之后,开始深入了解git分支管理模型,经过百度学习后,常用的一般有两种分支模型 TrunkBased模型(简称tbd)和目前最常用的GitFlow模型,以及今天学习的阿里分支管理模型AoneFlow. 分支管理模型只是一种通用的约定,并不是强制要按照这个模型的管理办法实施,只是针对各种分支管理的情况总结出来的通用的管理办法,每个项目可能根据自身项目的周期和实际情况来指定分支管理模型. TBD模型TBD模型只有一个主分支(master)和多个发布分支(release),这种模式主要在svn这种集中式管理工具里使用的比较多,所有开发人员都在一个分支工作,并提交代码到一个分支,这种模式对开发人员的协调沟通要求较高. 个人理解这种模式适用于只有一个版本运行的项目,如果多个版本同时维护就不太方便了. GitFlow模型GitFlow模型主要分为以下几个核心: master分支: 为生产环境运行分支代码,只能有一个 develop分支: 主干分支,只能有一个 feature分支: 特性分支,可以有多个,每个工作项一个分支 release分支: 发布分支,可以有多个 hotfix分支: 热修复分支,可以有多个,用于生产环境出现问题时快速修复 gitflow的分支管理比较复杂,简述下个人理解的分支管理流程: 有新的工作项(新增/修改功能,修复缺陷)时,基于develop分支(最初的develop分支是基于master分支的)拉取代码,创建新分支feature/newFeature 新的功能开发完毕后,将feature/newFeature合并入develop分支,而不是master分支 当发布周期到来时,基于develop分支创建一个release分支用于发布,此时的release分支应该不再有新的feature分支合并,只能用于缺陷修复 发布时,将release分支合并入master分支并基于master分支打标签,标志一次发布. 当master分支发布后,线上突然出现紧急问题时,基于master分支新增hotfix分支,修复缺陷后,将hotfix分支合并入master分支和develop分支,并且基于master分支打标签,标记一次发布 AoneFlow模型AoneFlow模型是基于上述两种模型演变出来的一种新模型,核心内容如下: master分支: 1个 主干分支 feature分支: 多个 特性分支 release分支: 多个 发布分支工作流程: 有新功能/缺陷时,基于master分支新建feature分支进行开发, 发布时,基于master分支新建release分支,并将本次需要发布的feature分支合并入release分支,并基于此release分支发布 将此release分支合并入master分支,并打tag标签 此操作发布前后进行都可 线上突然出现bug时,基于master分支新建release分支,基于此release分支新建feature分支,修复后再合并入release分支,重复2.3步操作. 删除release分支,删除release分支关联的feature分支.可以总结: AoneFlow是通过release分支来关联feature分支来做分支管理的. 目前AoneFlow是最贴合我们公司工作流程的. 云效devops.aliyun.com/workbench 公共云免费,一般小型项目可以直接使用的. 云效是阿里云免费的一站式DevOps平台,提供了从需求到交付的一站式平台. 我们只是在这里测试下云效中的代码管理库提供的对AoneFlow的支持 基于上文说的AoneFlow的核心思想: 我们做如下测试: 模拟正常开发过程,新增两个feature分支,修改代码后,都提交 通过dev流水线自动生成release分支 通过test流水线发布release分支的发布 通过prod流水线发布release,并将release分支合并到master分支 新建项目进入云效直接新建项目即可 新建分支新建feature/testFeature分支和feature/bugFix分支 新建流水线流水线这里我们简单点,只做代码测试,后续部署就跟jenkins一样了,云效的图形化也是非常给力的 新建流水线的时候,因为要基于AoneFlow模型来做,所以需要流水线源需要开发分支模式 然后就会出现分支管理器,这个不用修改,默认自动触发 然后简单添加一个单元测试,DEV的流水线就建立成功了,我们保存运行一下 此时需要你添加运行分支,此时就是AoneFlow里的多个feature分支合并到一个release分支,只不过云效可以通过流水线帮你做了合并的动作. 我们将刚才的两个分支都添加上,然后运行 等待运行成功后回到分支页面,你会发现多了一个release分支,这就是自动生成的release分支. 此后,我们用同样的方法建立test流水线和prod流水线 写基线区别的是prod流水线多了一个写基线的操作 写基线就是将生产流水线生成的release分支代码合并到master分支,并删除源分支,也对应AoneFlow中的操作 最终流水线就如下所示: 且又生成了一个release分支,这个由生产流水线生成的release分支其实就是生产环境运行分支了 通过上述实验,可以看到云效里其实通过流水线来支持了AoneFlow模型,让操作更方便. |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |