最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 我是怎么做git分支管理的

    正文概述 掘金(XingXiaoWu)   2021-06-22   651

    git分支管理模型挺多的,各种概念配图花里胡哨,对于初学者来说,看起来会比较累,可能理解不了。

    我这里描述一下我个人是如何做分支管理的,有更好的方式或者建议欢迎评论区交流。

    常驻分支

    保持三个常驻分支对应三个环境

    • master —— 生产
    • develop —— 开发
    • beta —— 测试

    一般情况下,各个公司都会有着不同的几个环境用于各项研发工作

    名称大同小异,我这里截取几个比较常见的环境名称,分别对应生产,测试,开发

    各位有几个环境,一般可以对应几个常驻分支

    保护分支

    master

    master为保护分支,禁止直接通过本地提交,需要经由有授权的开发人员通过公司使用的git平台合并

    git平台挺多的,各位的公司肯定有相关的平台选择,github gitee gitlab gitea等等

    建议,beta,develop分支也由平台发起合并操作,不要在本地进行合并提交操作。

    这样合并的过程,一定是有授权人员知晓的

    如果有codeReview过程,这个合并期间就能做了

    分支约定

    命名


    功能性迭代需求

    采用feature/开头。后面跟上对应的本项目版本号,不带v

    场景用例:

    比如某平台,我们称呼为AAA平台,当前已发布的线上版本为v6.0.0

    1. 产品A由于某产品需求,需要对AAA平台进行改动,则新迭代分支由master拉出为feature/6.0.1

    2. 同期产品B由于由于某产品需求,需要对AAA平台进行改动,由产品AB协商

      是合并在一个迭代内开发,还是分开开发

      合并在一起,则使用feature/6.0.1开发

      否则,由master重新拉出分支feature/6.0.2进行开发

      两个分支均由master拉出,互不干扰


    bugfix类型需求

    采用bugfix/开头。后面跟上当前正在迭代的版本号,如果没有正在迭代版本,则新增

    场景用例:

    比如AAA平台,由代码扫描平台扫描发现漏洞,需要紧急修复(理论上这种问题出现的频次相对较低)

    1. 当前AAA平台的迭代分支为feature/6.0.1

      则从master拉取bugfix/6.0.1

      修复完成后通过合并到develop,beta验后,合并到master发布上线

    2. 合并到master以后,将master合并到所有的迭代分支上,即 且feature/6.0.1上线版本修正为v6.0.2


    分支合并流程

    均由单独的feature分支和bugfix分支往masterdevelopbeta分支合并

    master有新的合并后,需要将master的代码合并到当前正在开发的迭代分支中

    可以视情况而定,是否需要重建developbeta分支

    说明

    这里需要说明一下

    为什么要把feature下的分支单独往master分支合并发布

    而不是feature->develop->beta->master这样依次合并

    假设存在多个迭代同时进行,但不是同时发版。

    这里我用三个字母代表多个迭代a,b,c

    他们的发版时间,分别某月1日,同月2日,同月3日。

    假设在上个月30日,abc均完成迭代,发布到了beta环境。

    那么在1日发版时,beta分支上存在bc的代码,无法剥离开来单独发版。

    因此我们绝不能采用feature/合并到develop,develop合并到beta,beta合并到master这种方式来发版

    发布流程

    引入自动化平台,可用平台挺多的,jenkins spug等等

    1. 由自动化平台拉取master分支进行发布
    2. 上线验证完毕以后
    3. git平台发布release,生成tag填写版本好,带v
    4. 一定要填写本次发版内容!!!
    5. 删除对应迭代分支

    对于某些由主干产品单独定制的业务产品

    可能存在某些业务,又一个主干产品

    同时有些客户要求定制化

    这些定制化以后的需求,实际上就偏离了主干产品了

    针对这种类型的产品,通过fork的方式拉出单独仓库,按照上述方式进行分支管理

    因为通过fork方式,定制项目与主干项目存在关联性

    可以通过合并的方式,将主干的某些内容合并到定制项目上

    对于这类项目的发布,均由自动化平台的单独业务job发布


    下载网 » 我是怎么做git分支管理的

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元