git版本规范-前端

news2025/1/21 21:56:38

前言

本文档适用于前端的小伙伴。针对目前前端只有测试环境和生产环境,为更好管理前端代码和适用于自动化部署,编写次文档,有不同意见的小伙伴可以进行讨论。

分支

由于没有目前没有预发环境,简化开发、测试、部署和发布流程,暂时屏弃realease分支,新增develop-jenkins分支用于jenkins自动化部署。

平时开发中,注意先拉取合并代码后再提交!

注意经常性进行提交代码,而不是积累一天或者几天的代码量再一次性提交!

主分支:

  • 命名: master-xxx
  • 意义: 是发布到线上的代码版本,在主分支上会打上对应的版本号标签
  • 维护者: 项目的主程、软件组长、专门维护线上版本人员
  • 数量: 理论上只有一个,如果该项目面向多个渠道独立发布的,那就创建多个master

develop分支

  • 命名: develop-xxx
  • 意义: 团队开发合并和fork主要以此分支为准,开发过程中需要经常对develop进行合并
  • 维护者: 如果有代码评审机制,那么在发送develop合并feature分支时,应该做代码评审。 维护者是整个开发团队。
  • 数量: 与master分支对应

feature分支

  • 命名: ft-xxx
  • 意义: 团队成员开发具体需求时,需要从develop fork出一个特性分支,专门用来开发对应功能需求。 如果功能完成,测试人员可以针对该分支进行单独的功能测试,在禅道的任务中需要添加 的开发分支 就是这个特性分支
  • 维护者: 当前开发此功能的研发人员

hotfix分支:

  • 命名:fix-{bug编号}
  • 意义:用于对线上的bug的修复或测试版本的bug修复
  • 维护:对应开发人员
  • 使用:bug的修复可以在feature分支中进行,如果是迭代周期内的bug推荐使用feature修复,并与develp分支合并。如果是线上的bug,那就从master分支fork出fix分支,使用fix进行修复,测试通过后,直接合并master分支,fix分支可以在之后的时间删除。

develop-jenkins分支(自动化部署分支)

  • 命名:develop-jenkins
  • 意义:团队开发部署合并主要以此分支为准,开发过程中需要经常对develop-jenkins进行合并
  • 维护:对运维人员
  • 使用:和develop分支一样都是同master分支拉取,再由develop分支合并

整体分支流程 

自动化部署分支流程抽离 

 

原则

  1. 同一时间点,develop、develop-jenkins分支只能有一条,不允许多条分支并行
  2. develop、develop-jenkins分支只能merge合入代码,不允许直接push代码
  3. 当hotfix分支合并入到mastrer分支之前,hotfix分支必须得再次验证,纵使hotfix上的功能全都验证通过,此刻合入了master(hotfix肯定在生产上已经验证过),也得再验证一次.
  4. 开发完成进入测试阶段,禁止直接develop分支直接合并到master分支,需将develop分支合并到develop-jenkins分支触发测试环境自动化部署,待测试环境测试通过后,再将develop分支合并到master分支。

介绍

1.系统开始之初,代表从master基线版本(v1.0.0)中,项目负责人拉取一条develop、develop-jenkins的长期分支,同时也是保护分支和构建部署分支

2. 当有一个或多个迭代版本要预期上线时候,开发人员要从develop分支拉取一个feature分支,取名feature/feature-20230319-1,拉取feature分支的时间点理论上来说是没有限制的

3. feature/feature-20230319-1分支可以包含此迭代周期里所有功能的合集,开发人员在此分支开发,一直在这条分支修复发现的bug

4. 这一步是整个流程中,可能是对项目负责人最多工作量的一个环节,开发人员向项目负责人提起合并到develop分支的诉求,项目负责人判断后,如果可以合入,则将此迭代分支合入到develop分支中,这个地方,对项目负责人考验最多的是两点:

  • 第一点,合并诉求都会堆积在项目负责人这里,会造成工作量的压力
  • 第二点,如果同一时间点有两条或多条feature分支都在并行,同时有合入develop分支的诉求,那么必须判断出,哪条或者哪些分支是需要延时合入。
    总的来说,合入develop分支的原则就是:1、多feature分支,认真判断先后合入顺序 2、一旦有feature分支合入develop分支,其他不在本次迭代上线的feature分支都不得合入develop
    develop一套分支代码会同时承载两个环境,一个dev环境供开发使用,一个test环境供测试使用,一定意义上能满足开发人员对其他新功能的依赖联调,另一方面,也能让测试人员有一个独立的环境来验证功能问题。

5.项目负责人根据当前迭代分支合并到分支develop-jenkins进行测试环境部署,并删除开发分支feature-20230319-1

6.如果测试环境有问题,从develop拉取hotfix/devBug-20230319分支进行bug修复,再由测试进行回归验证

7.如果测试环境没有问题,则项目负责人将develop合并到master分支,当合并到master分支进行自动化部署,运维部署成功后,测试开始在生产环境上进行冒烟测试,当发现有问题,通知开发人员,开发人员在hotfix/devBug-20230319分支修改,然后回到6的流程上,再重复的动作,最终生产环境验证无误后,由项目经理到master分支上打上这次迭代版本的tag:v1.0.1,并删除hotfix/devBug-20230319至此,一次完整的发布流程结束

8当生产确定无误后,也就不存在hotfix/devBug-20230319分支了,所以任何对生产的紧急修复,只能通过再次hotfix分支拉去来完成,这里强调,不是生产上有任何问题都必须走hotfix分支修复的,致命并且紧急的bug才能走hotfix分支,所以hotfix分支的创建是由项目负责人来创建的,分支名:hotfix/devBug-20230319,常规问题应该还是要走迭代去修复

9 hotfix的目的在于紧急处理线上问题,因此它不具备在另一个环境回归验证的过程,修复完,就要快速上线合并至master分支和develop分支,并且同时要看此刻有无hotfix/devBug-20230319分支,如果有,则需要额外合并入hotfix/devBug-20230319分支,develop-jenkins分支是否需要develop分支重新合并由项目负责人定,这是为了保证线上紧急修复的代码在hotfix/devBug-20230319分支中和develop中都不能疏漏的同时不影响测试环境正在测试的代码,当到master并且生产验证通过后,项目需要到master分支上打上这次hotfix的tag:hf20230319,最终删除hotfix分支。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/414225.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

W80X|联盛德|nulllab空想实验室|Arduino适配|学习(6):w80x_arduino环境安装

文章目录概述官方推荐安装方法(实测未成功)readme中的安装步骤:手动安装方法:clone项目至本地手动新建w80x_arduino管理器存放目录w80x_arduino开发进展说明概述 此开源项目由nulllab空想实验室团队维护,并得到联盛德…

STL基本概念

📖作者介绍:22级树莓人(计算机专业),热爱编程<目前在c++阶段>——目标Windows,MySQL,Qt,数据结构与算法,Linux,多线程&…

vue3+TS+Pinia+Vite项目实战之一

文章目录一、创建项目1.1 使用脚手架创建项目1.2 初始化项目二、登录页面的开发三、使用vite-plugin-mock模拟后台接口返回数据四、前端调用后端接口使用axios五、首页layout六、动态菜单七、设置需要登录才能访问某些页面一、创建项目 1.1 使用脚手架创建项目 npm init vuel…

【网络安全】SQL注入--报错注入

报错注入报错注入定义代码展示常用的报错语句1.获取数据库名称2.获取mysql账号密码3.获取表名4.获取字段名5.获取账号密码报错注入定义 报错注入:利用sql语句的不规范,获取相关sql提示信息 代码展示 常用的报错语句 select first_name, last_name FROM…

【小程序】django笔记2

templates路径除了在settings中的templates的DIR[]中申明还有什么别的方法?已知,django底层根据app注册顺序查找各app文件中的templates文件夹,在其中搜索目标模版文件。已知,app注册在settings中的INSTAll-APPS里。已知&#xff…

MyBatis基础增删改查

文章目录MyBatis1. MyBatis是什么?2. 为什么要学习MyBatis3. 第一个MyBatis环境搭建1)添加MyBatis框架支持2)配置MyBatis相关配置文件3)添加代码4. 解决类的属性名和数据表字段名不一致(resultMap)5. 增加操作1)返回受影响的行数2)返回自增的id6. 修改操作7. 删除操…

类和对象深入讲解(1)

目录 1.类和对象的初步认识 1.1面向过程和面向对象的区别 1.2类的引入 1.3内的定义 1.4类的访问限定符及封装 1.4.1访问限定符 1.4.2 封装 1.5类的作用域 1.6类对象模型 1.6.1如何计算类对象大小 1.类和对象的初步认识 1.1面向过程和面向对象的区别 C语言是面向过程的…

大模型混战,阿里百度华为谁将成就AI时代的“新地基”?

从算力基础到用户生态,群雄逐鹿大模型 自2022年stable diffusion模型的进步推动AIGC的快速发展后,年底,ChatGPT以“破圈者”的姿态,快速“吸粉”亿万,在全球范围内掀起了一股AI浪潮,也促使了众多海外巨头竞…

Golang每日一练(leetDay0030)

目录 88. 合并两个有序数组 Merge Sorted Array 🌟 89. 格雷编码 Gray Code 🌟🌟 90. 子集 II Subsets II 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/…

为什么要创建FAQ?这篇文章告诉你

什么是FAQ 通过上述的引入大家应该也了解到了,FAQ是为了“解决问题”而存在的。FAQ是英文Frequently Asked Questions的缩写,中文意思就是“经常问到的问题”,或者更通俗地叫做“常见问题解答”。FAQ是当前网络上提供在线帮助的主要手段&…

小程序开发收费价目表

小程序作为一种新兴应用形式,正在逐渐成为企业和个人推广、运营的重要手段。然而,小程序开发的价格因项目规模和复杂程度差异较大,令不少人望而却步。本文将从小程序开发的相关因素入手,探讨小程序开发的价格范围和算法。 一、小…

【JLink仿真器】盗版检测、连接故障、检测不到芯片问题

【JLink仿真器】盗版检测、连接故障、检测不到芯片问题一、问题描述二、解决方法1、降低驱动(解决非法问题以及连接故障)2、SWD引脚被锁(解决检测不到芯片)三、说明一、问题描述 盗版检测:the connected probe appear…

【Linux】Mysql之索引的基本操作

一、为什么要使用索引 索引就是根据表中的一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表,实质上是一张描述索引列的列值与原表中记录行之间一 一对应关系的有序表。 索引是 MySQL 中十分重要的数据库对象,是数据库性能调优技术的基础&…

GraphCL方法介绍(Graph Contrastive Learning with Augmentations)

论文链接:https://arxiv.org/pdf/2010.13902.pdf 附录链接:https://yyou1996.github.io/files/neurips2020_graphcl_supplement.pdf 代码链接:https://github.com/Shen-Lab/GraphCL 1 图的数据增强 我们专注于图级扩充。给定 M 个图的数…

【分布式】熔断、降级傻傻分不清楚-熔断和降级的真实关系

文章目录前言降级熔断什么是服务熔断熔断和降级的关系降级方式1、熔断降级(不可用)2、超时降级3、限流降级总结前言 刚开始我以为熔断和降级是一体的,以为他们必须配合使用; 只不过名字不一样而已,但是当我经过思考过…

[架构之路-164]-《软考-系统分析师》-3-操作系统基本原理-文件系统(文件的逻辑组织、文件的物理组织、硬盘空间管理、分布式文件系统)

目录 3 . 4 文件系统 3.4.1文件的组织结构 1 . 逻辑结构 2 . 物理结构 3 . 树形文件结构 3.4.2 硬盘存储空间管理 1 . 空闲文件目录 2 . 空闲块链 3 . 位示图法 4 . 成组链接法 3.4.3分布式文件系统 1. D F S 的特点 2. DFS 的组成 3. DFS 的架构 3 . 4 文件系统…

腾讯云服务器TencentOS系统安装宝塔Linux面板命令

腾讯云服务器TencentOS Server操作系统安装宝塔Linux面板命令选择CentOS安装脚本即可,TencentOS用户态环境与CentOS保持兼容,在CentOS上开发的应用程序可直接在TencentOS Server上运行。腾讯云百科分享腾讯云服务器TencentOS操作系统安装宝塔Linux面板命…

客户端ack模块的实现

文章目录背景第一版设计第二版设计第三、四版设计写在最后背景 所谓客户端ack模块是在我们推送服务中一个技术需求,本文主要介绍其迭代过程。 首先简单介绍下推送服务的架构,如下图。用户请求ws服务,建立ws长连接,并通过login和…

类和对象(C++11)

目录 一、类的定义 1.定义与声明放一起 2.定义与声明分开 二、类的访问限定符及封装 1.类的访问限定符 2.类的封装 三、类的实例化 四、类对象 1.类对象的存储方式 2.计算类对象的大小 面试题 1.结构体怎么对齐? 为什么要进行内存对齐? 2.如…