实用分支管理策略

首先挂一张分支管理策略的图(看不清点大图)

在这里插入图片描述

分支介绍

这里面一共有6个远程分支,分别是master分支,release分支,feature分支,dev分支,SIT分支,UAT分支。

  • master分支:主分支,包含所有开发特性的,最全面的一个分支,分支存活期为永久。
  • release分支:投产版本分支,包含所有投产特性的分支,分支存活期为永久。
  • feature分支:迭代特性分支,在迭代开始时,迭代规划决定本次开发的功能点,每个功能点细化为一个feature分支,该分支上的每次commit为实现该feature的一个具体子功能,每次commit会触发一次CI,分支存活期为永久。
  • dev分支:开发测试分支,主要用于feature分支迁移至dev分支时,进行CodeReview,代码评审过后会在该分支上进行CD,分支存活期为当前整个迭代,随着功能点合入master或者release而撤销。
  • SIT分支:集成测试分支,条件允许的公司,有自己专门的测试团队,会从这上面拉取代码进行SIT测试,或者从刚才dev分支CD后的制品库拉取介质包,进行测试,分支存活期为永久。
  • UAT分支:用户验收测试分支,SIT通过后,代码会合入UAT分支,测试团队从这个分支上拉取代码进行编译,或者从制品库获取介质包,在UAT环境进行投产前预演,分支存活期为永久。

分支关系

1、为什么要设置master 和 release这两个重复的分支?
  • master分支存放所有代码,包含所有的功能点,而release分支存放所有投产的功能点,两者关系是:release是master的子集,release有的,master都有,master有的,release不一定有。
  • 那么为什么会出现这种情况呢?因为有些功能点开发出来后,不一定投产,会等到某个时机,从master上分离这部分代码,打成patch合入release进行投产。
2、feature 和 dev是否重复了?
  • 不重复,feature分支的存在,是为了梳理功能点,如果若干功能点在一个分支开发,commit会显得很乱,但是独立成一个分支,这些commit是在该分支上是连续提交的,无论是回退、打patch还是merge,都能很方便找到。
  • 从功能上说,单个feature开发,影响范围小,降低了代码提交时与其他feature代码的冲突风险,而且每次提交只会触发本分支的CI,较少导致CI排队,效率较高。
  • dev分支的存在,是为CodeReview量身定做的,即使CI和门禁都过了的代码,也有优化的潜力,工具检测是无法代替功力深厚的老架构的。
3、dev分支既然已经生成target介质,直接投产测试就好了,为什么还需要SIT和UAT分支?
  • 测试规模不同:

    • dev在本组内进行测试,是组内开发的所有功能联合测试,看看这部分代码是否影响了其他人开发的功能,范围较小。
    • SIT是集成测试,这个时候涉及到所有组件联调,范围适中。
    • UAT是最关键的测试,仿生产环境进行测试,从测试流量和测试频率来说,都是最高的,也是最接近生产的,范围较大。
  • 代码冲突:

    • feature分支合并时的代码冲突在合入dev时解决。
    • 在dev、SIT、UAT中发现问题,及时回到feature分之修复,再逐级提交,越早发现bug和冲突,代价越小。

有其他问题欢迎留言,要是项目组开发的不是微服务,或者代码量较少,完全没必要建立这么多分支,记住一句话:拉分支一时爽,销分支火葬场。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GitLab分支策略是指在开发过程中使用不同的分支来管理代码的一种方法。分支是用于独立开发和管理功能的副本,可以在不影响主要代码的情况下进行修改和测试。 在GitLab中,常见的分支策略包括以下几种: 1. 主分支Master/Main):主分支是项目的主要分支,用于存储稳定的、可发布的代码。通常情况下,主分支应该保持干净、可用,并且只允许合并经过验证的代码。 2. 开发分支(Development):在主分支的基础上创建的开发分支,用于并行开发多个功能。开发人员可以在开发分支上进行修改、测试和提交代码。一般情况下,这个分支会持续不断地接收从其他分支合并的代码。 3. 功能分支(Feature):功能分支用于对一个具体的功能进行开发。每个功能分支都从开发分支上创建,并在开发完成后再合并回开发分支,然后可以选择是否将其合并回主分支。 4. 修复分支(Hotfix):修复分支主要用于解决主分支上的紧急问题。当主分支上出现了一个严重的问题,需要立即修复时,可以从主分支上创建一个修复分支,在修复完成后再合并回主分支。 在实际应用中,可以根据项目的规模和需要进行适当的调整和定制。例如,对于大型项目,可以引入预发布分支Release)用于测试和准备发布版本。另外,还有一些高级的分支策略,如可选分支(Optional)、Bug分支(Bug)等,可以根据实际情况选择使用。 总之,使用GitLab的分支策略可以有效地实现团队协作和代码管理,使开发过程更加清晰、可控,并且能够快速响应和解决问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值