分支管理-分支开发

简介

        分支开发(branch development)。它的特点就是项目的功能开发工作主要在从master主分支切出来的fe ature分支上。根据功能代码开发完毕后的项目发布,就出现了两种不同的发布模式:
                分支开发-主干发布
                分支开发-分支发布-合并回主干
案例需求:
        n月 1 日 A项目发布1.0版本
        n 月 2 日 A项目着手开发1.1 版本的新功能
        n月 7 日 线上运行A项目的1.0版本出现问题,并与当日修复并发布1.01版本
        n月 16日 线上运行A项目的1.0版本出现问题,并与当日修复并发布1.02版本 n 月 20日 A项目完成新版本功能,并发布1.1版本
注意:
        1.01和1.02的修复代码过程不影响1.1正常发布
        1.1 版本包含 1.01和1.02的修复代码功能

1. 分支开发-主干发布

分支开发-主干发布简介
       分支开发-主干发布。它的特点就是项目的功能开发工作在从master主分支切出来的feature分支上,代码开发完毕后,经过功能测试没有问题后,在正式代码发布之前,先从master主分支获取最新/最完整的代码,合并到当前的feature分支上,进行整合功能测试,测试通过后,就将代码合并到master主功能分支上,发布代码的时候,只需要打一个release标签即可。如果进行下一个功能版本开发,那么就从master分支切出一个新的fea ture分支即可。
       如果线上代码出现bug,那么就从master分支上切出来一个bug分支,修复该bug即可。
代码开发效果


代码开发原则

  1. 只能在功能feature分支上开发,不能直接在master主分支上开发
  2. feature分支代码开发完毕后,代码功能必须通过测试
  3. feature分支在合并到master分支前,获取最新的master分支内容,合并后进行功能测试,再合并到ma
    ster
  4. feature分支合并到master主分支后,应该停用该feature分支,最好删除。
  5. master主干上的每一次发布都是做了一个release标签而不是分支。
    优势
           常见的一种代码开发方式。
           团队人员在自己的feature分支工作,隔离其他工作的变动多个功能使用feature分支并行开发,互不影响
           因为都是每次功能代码发布都是在之前基础上,所以代码内容调整起来比较容易,即使有冲突也可以快速解决
    劣势:
           feature分支最终要合并到master分支,若feature分支间代码有交互,导致master合并冲突(文件、语意)
           feature分支代码测试,需要单独建立测试流水线,浪费资源,而且并未真正实施项目集成测试。

2. 分支开发-分支发布

分支开发-分支发布简介
       分支开发-分支发布的特点就是项目的功能开发工作在从master主分支切出来的feature分支上,代码开发完毕后,经过功能测试没有问题后,然后直接在当前feature分支上进行代码发布,发布后,将feature分支的代码合并到master主分支上。如果进行下一个功能版本开发,那么就从master分支再切出一个新的feature分支即可。
       如果线上代码出现bug,那么就可以直接在feature分支上修复,修复后,将代码合并回master分支;如果b ug功能很重要,可以单独从master分支上再切一个bug分支来修改。
分支开发-分支发布流程


代码开发原则
1. 只能在功能feature分支上开发,不能直接在master主分支上开发。
2. feature分支代码开发完毕后,代码功能必须通过测试。
3. feature分支代码功能通过测试后,直接进行代码发布。
4. feature分支代码发布后,将最终代码合并到master主分支,该feature分支作为版本可以一直存在下去

优势:
       最常见的代码开发方式
       多个功能使用feature分支并行开发,互不影响
       可以选择指定的feature分支进行代码发布,不会被其他功能阻塞。
劣势:
       feature分支最终要合并到master上,若feature分支间代码有交互,导致合并冲突(文件、语意)。
       feature分支发布后容易忘记合并回master主干。
       feature分支代码测试,需要单独建立测试流水线,浪费资源,而且并未真正实施项目集成测试。
常见场景:
       开源项目、多产品线的项目

3. 小结

       分支开发分类:分支开发-主干发布、分支开发-分支发布
       主干发布流程:拉取-开发-测试-拉取-测试-合并-发布(标签)-循环分支发布流程:拉取-开发-测试-发布-合并-循环

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容