两种分支开发模式的区别

基于上线时间点拉分支

  • 如分支A:2023.06.29;和 分支B:2023.07.18 两个上线节点,从master拉分支,上线后合入master。master分支始终保持为当前生产运行的代码。
  • 缺点
    • 需要提前规划哪些需求,在不同的时间节点上生产。应对需要提前上生产的需求,紧急的需求都不够灵活。
    • 无法灵活应对需求的时间节点变动。如果有需求甲,本来要计划合入分支A,sit或uat测试到一半,由于一些外界原因,要改为分支B甚至更后面的分支C,这个时候要把A分支的需求甲的代码删除
    • 无法配合外部系统的强时间节点且周期长的需求。如从6月1号开始,现有1-10个大需求跨多个业务部门,必须配合其他微服务同时在6月1号起在sit上运行,其中需求1到3是6.29上生产,需求4到7是7.18上生产,需求8到10是7.30上生产。
    • 在sit和uat的测试时间特别紧凑。如06.29的分支正在sit验证中,留给07.18的在sit验证的周期就较短。
  • 优点:
    • 环境扩充时更便捷
    • 环境切换时通过脚本切换,不同环境代码不一致的风险极低
  • 适用
    • 上游服务、聚合服务(调别人的)

基于环境创建分支

  • 会创建prod,uat,sit分支,开发时从prod拉出feature分支,feature分支开发完成后,分别合入sit,uat,prod。prod分支始终保持为当前生产运行的代码。
  • 缺点
    • 目前有三个环境要合三次代码,如果环境更多时要合的次数更多,每次都需要手工合入
    • 每次合入不同环境的分支时,可能会合入代码时冲突,包括会有代码漏合的风险
  • 优点
    • 各个环境发版时间灵活
    • 不同的环境的需求数量可以不一样,可以灵活对接其他微服务的需求
    • 可以安排充足的时间在sit和uat验证、联调;例如一个大的跨多个服务的需求,需要在sit测试半年,都支持。
  • 适用
    • 下游服务(给别人调用的)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容