当前位置: 首页 > news >正文

[Git][分支设计规范]详细讲解

目录

  • 0.概览
  • 1.`master`分支
  • 2.`release`分支
  • 3.`develop`分支
  • 4.`feature`分支
  • 5.`hotfix`分支


0.概览

  • 以下是常用的分支和环境的搭配,可视情况而定不同的策略

    分支名称适用环境
    master主分支生产环境
    release预发布分支预发布/测试环境
    develop开发分支开发环境
    feature需求开发分支本地
    hotfix紧急修复分支本地
  • 以下介绍的模型,是企业级常用的一种Git分支设计规范:Git Flow模型
    请添加图片描述


1.master分支

  • master主分⽀该分⽀为只读且唯⼀分⽀
    • ⽤于部署到正式发布环境,⼀般由合并release分⽀得到
  • 主分⽀作为稳定的唯⼀代码库,任何情况下不允许直接在master分⽀上修改代码
  • 产品的功能全部实现后,最终在master分⽀对外发布
    • 所有在master分⽀的推送应该打标签 (tag)做记录,⽅便追溯
  • master分⽀不可删除

2.release分支

  • release预发布分⽀,基于本次上线所有的feature分⽀合并到develop分⽀之后,基develop分⽀创建,可以部署到测试或预发布集群
  • 命名以release/开头,建议的命名规则:release/version_publishtime
  • release分⽀主要⽤于提交给测试⼈员进⾏功能测试,发布提测阶段,会以release为基准进⾏提测
  • 如果在release分⽀测试出问题,需要回归验证develop分支是否存在此问题
  • release分⽀属于临时分⽀,产品上线后可选删除

3.develop分支

  • develop开发分⽀基于master分⽀创建的只读且唯⼀分⽀
    • 始终保持最新完成以及bug修复后的代码,可部署到开发环境对应集群
  • 可根据需求⼤⼩程度确定是由feature分⽀合并,还是直接在上⾯开发(⾮常不建议)

4.feature分支

  • feature分⽀通常为新功能或新特性开发分⽀,以develop分支为基础创建feature分支
  • 命名以feature/开头,建议的命名规则:feature/user_createtime_feature
  • 新特性或新功能开发完成后,开发⼈员需合到develop分⽀
  • ⼀旦该需求发布上线,便将其删除

5.hotfix分支

  • hotfix分⽀为线上bug修复分⽀或叫补丁分⽀,主要⽤于对线上的版本进⾏bug修复
    • 当线上出现紧急问题需要⻢上修复时,需要基于master分⽀创建hotfix分⽀
  • 命名以hotfix/开头,建议的命名规则:hotfix/user_createtime_hotfix
  • 当问题修复完成后,需要合并到master分⽀和develop分⽀并推送远程
    • ⼀旦修复上线,便将其删除

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • VSCode在windows系统下的配置简单版
  • ArcGIS for js 缓冲(vue项目)
  • 代码”byte a = 0Xa1“为什么会报编译错误?
  • python游戏开发之五子棋游戏制作
  • Fast-DDS的依赖 foonathan_memory_vendor编译
  • ZICO2: 1【附代码】(权限提升)
  • 智算新风向丨趋动科技获中国信通院泰尔实验室首张智算资源池化能力泰尔测评证书
  • U2net论文复现-简单解读-以及奇奇怪怪的改进-测试roc以及pr
  • 机器学习用Python 还是 R语言?
  • Unknown input format pdf Pandoc can convert to PDF, but not from PDF.解决方案
  • Webkit与Web Push API:提升用户体验的推送技术
  • P3008 [USACO11JAN] Roads and Planes G
  • 24.8.3数据结构|双向循环链表、静态链表
  • 在大语言模型中,我们每次输入的语句长度不同,这样会影响结果吗;在大语言模型中,训练中每次的输入长度都是不一样的,但是是一样权重矩阵,不足的话是补 0吗;;;
  • 前端day7-css选择器
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【笔记】你不知道的JS读书笔记——Promise
  • 【译】理解JavaScript:new 关键字
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • bearychat的java client
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Iterator 和 for...of 循环
  • java 多线程基础, 我觉得还是有必要看看的
  • JavaScript DOM 10 - 滚动
  • Linux gpio口使用方法
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • 安装python包到指定虚拟环境
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • - 概述 - 《设计模式(极简c++版)》
  • 浅谈web中前端模板引擎的使用
  • 源码安装memcached和php memcache扩展
  • 栈实现走出迷宫(C++)
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #、%和$符号在OGNL表达式中经常出现
  • (4)Elastix图像配准:3D图像
  • (MTK)java文件添加简单接口并配置相应的SELinux avc 权限笔记2
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (七)Java对象在Hibernate持久化层的状态
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .NET Core使用NPOI导出复杂,美观的Excel详解
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .NET简谈设计模式之(单件模式)
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .NET中分布式服务
  • .pyc文件是什么?
  • ::
  • @javax.ws.rs Webservice注解
  • @RequestMapping 和 @GetMapping等子注解的区别及其用法
  • [ CTF ] WriteUp-2022年春秋杯网络安全联赛-冬季赛
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [Android Pro] AndroidX重构和映射