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

git版本规范-前端

前言

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

分支

由于没有目前没有预发环境,简化开发、测试、部署和发布流程,暂时屏弃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分支。

 

相关文章:

git版本规范-前端

前言 本文档适用于前端的小伙伴。针对目前前端只有测试环境和生产环境,为更好管理前端代码和适用于自动化部署,编写次文档,有不同意见的小伙伴可以进行讨论。 分支 由于没有目前没有预发环境,简化开发、测试、部署和发布流程&a…...

UEFI Device Path (1): 重新认识Device Path

从事UEFI开发的人员,对UEFI Device Path的概念都有一定了解,但未必都建立了比较系统而深刻的认识。UEFI Device Path的认知仅限于: 1)它是用来表示系统中设备的路径;2) 在UEFI SPEC中定义了它的数据结构和若干操作它的UEFI Protocol。除此以外…...

合成孔径成像的应用及发展

一、引言 合成孔径成像自20世纪50年代提出,应用于雷达成像,历经70年的研发,已经日趋成熟,成功地用于环境资源监测、灾害监测、海事管理及军事等领域。受物理环境制约,合成孔径在声呐成像中的研发与应用起步稍迟&#…...

MyBatis-Plus的基本操作

目录 1、配置文件 1、添加依赖 2、启动类 3、实体类 4、添加Mapper类 5、测试Mapper接口 2、CRUD测试 1、insert添加 2、修改操作 3、删除操作 3、MyBatis-Plus条件构造器 4、knife4j 1、Swagger介绍 2、集成knife4j 3.添加依赖 4 添加knife4j配置类 5、 Cont…...

HTTPAPI使用

1、使用浏览器 1.1、获取当前IP(限制 1200次 /小时) 用浏览器访问 http://ip.hahado.cn/current-ip 输入用户名和密码 [{"ip": "180.102.181.64","ttl": 262.87515091896057} ] "ip": 字段是当前的外网IP ("ip&qu…...

Windos下设置java项目开机自启动

这里是将java项目注册为Windows服务实现开机自启动。 查看.NET framework版本 因为使用winsw工具运行时需要使用.NET framework,基本上现在的win10系统带自带有.NET framework4.0,为了选择合适的版本,我们可以查看本机.NET Framework版本,根…...

(链表)移除链表元素(双指针法)

文章目录前言:问题描述:解题思路(双指针法):代码实现:总结:前言: 此篇是针对链表的经典练习题。 问题描述: 给你一个链表的头节点 head 和一个整数 val ,请…...

Raft协议

文章目录一、目的(与Paxos相同)二、名字来源三、服务器状态四、基本实现1、任期2、RPC调用3、领导者选举4、日志复制5.领导者更替三、Raft与Paxos的区别1.表现形式2.简单性3.领导选举算法一、目的(与Paxos相同) 保证日志完全相同…...

动态规划概述

动态规划概述动态规划的两个要求: 1.最优子结构 例:现有一座10级台阶的楼梯,我们要从下往上走,每次只能跨一步,一步可以往上走1级或者2级台阶,请问一共有多少种解法呢? 台阶数12345678910走法数…...

CPU缓存架构+Disruptor内存队列

文章目录CPU缓存架构Disruptor内存队列CPU缓存架构介绍缓存一致性问题缓存一致性协议MESI协议伪共享问题高性能内存队列DisruptorCPU缓存架构Disruptor内存队列 CPU缓存架构 介绍 cpu与内存的交互数据之间,有一个高速缓存层。有些处理器有3层缓冲,有些…...

Spark SQL join操作详解

一、 数据准备 本文主要介绍 Spark SQL 的多表连接,需要预先准备测试数据。分别创建员工和部门的 Datafame,并注册为临时视图,代码如下: val spark SparkSession.builder().appName("aggregations").master("lo…...

设计模式-day04

5,结构型模式 5.6 组合模式 5.6.1 概述 对于这个图片肯定会非常熟悉,上图我们可以看做是一个文件系统,对于这样的结构我们称之为树形结构。在树形结构中可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,…...

线段树的学习(2023.4.5)

今天我来学习线段树 首先它是树有着树的结构,线段树由于本身是专门用来处理区间问题的 它的作用可以处理区间的问题拥有更快的速度. 对于每一个子节点而言,都表示整个序列中的一段子区间;对于每个叶子节点而言,都表示序列中的单个元素信息…...

Java 实现excel、word、txt、ppt等办公文件在线预览功能

相信大家在开发的过程中都会遇到在线预览功能,有没有想过如何通过java来实现excel、word、txt、ppt等办公文件在线预览功能?今天我们就来解决这一疑问! 其实,网上还是有些公司对这一功能提供了收费服务。那么,如何实现…...

《Vue3实战》 第九章 路由

1、安装路由 cnpm install vue-router42、router-link应用 2.1、创建views/OrderList.vue组件 <template> <h1>订单列表页面......</h1> </template> <script> export default{name: OrderList,data(){return{arr:[4,2,5]} } …...

ToBeWritten之物联网Zigbee协议

也许每个人出生的时候都以为这世界都是为他一个人而存在的&#xff0c;当他发现自己错的时候&#xff0c;他便开始长大 少走了弯路&#xff0c;也就错过了风景&#xff0c;无论如何&#xff0c;感谢经历 转移发布平台通知&#xff1a;将不再在CSDN博客发布新文章&#xff0c;敬…...

【万象奥科】RZ/G2UL网关内存压力测试

测试目的 内存压力测试的目的是测试系统内存的稳定性和可靠性&#xff0c;以便确定系统是否能够在各种负载情况下正常运行。其主要目的有&#xff1a; 测试内存的正确性&#xff1a;通过模拟各种内存负载情况&#xff0c;例如写入随机数据、重复写入相同数据、使用指定的模式…...

C++中的继承

面向对象的三大特性 封装继承多态 继承的概念和定义 继承的本质就是类层次的复用。 继承的概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段.它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xf…...

SpringRetry接口异常优雅重试机制

场景&#xff1a; 某些场景下&#xff0c;如果接口出现异常需要进行重试&#xff0c;例如网络抖动、调用接口超时等并非接口代码导致的报错&#xff0c;此时可以进行接口重试机制 1、导入 spring retry 重试依赖 <!-- spring retry --><dependency><groupId>…...

2023年全国最新高校辅导员精选真题及答案46

百分百题库提供高校辅导员考试试题、辅导员考试预测题、高校辅导员考试真题、辅导员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 27.充沛的精力和顽强的毅力是教师意志品质的体现。 答案&#xff1a;正确 28.规范与约束…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...