Git工作流: 主干开发tag上线

2024-04-21 05:08
文章标签 工作 开发 git 上线 tag 主干

本文主要是介绍Git工作流: 主干开发tag上线,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

使用git的朋友应该都熟悉一些常见的工作流,比如主干开发分支上线和分支开发主干上线。前者是指在master分支永远是开发版的最新代码,而分支上则是当前线上部署的代码,后者反之。这里给大家介绍一个我个人非常习惯的流程:主干开发,Tag上线。

只用master分支,上线打tag

所谓Tag上线是指我们全程都只有一个master分支,所有代码都向master提交,当上线的时候我们会在当前版本上打一个tag, tag名就是版本号,比如v1.0.xxxx。版本号可以根据一个简单的规则来定,v.主版本号.副版本号.HHmm。其中后面的HHmm表示上线时的小时和分钟,例如今天下午17点的第一次上线可以叫v1.0.1700, 如果发现有问题18点又进行了一次上线,可以打一个名为v1.0.1800, 如果明天晚上又上线了一次,可以将版本号改为v1.1.2015。使用这种打tag的方式上线有一个好处,那就是可以保留你所有的上线代码版本,你可以随时退回到任意一次上线的代码库,这样就比分支上线方便一些。

修复线上bug

下面来看一个常见的场景,如果线上遇到bug需要修复而master分支已经提交了新开发的代码了该怎么办呢?非常简单,使用checkout命令,直接退回到最近一次上线的tag位置,然后以此为基准创建一个新的fix分支:

git checkout fix-bug v1.1.2015

执行完以后就已经在新创建的fix-bug分支了,而且代码已经回到了最近一次上线的状态。完成修复以后直接commit并打上新的tag, 比如v1.2.xxxx, 最后切回master分支,将fix-bug合并到master即可:

git commit '修复xxx问题'
git tag v1.2.xxxx
git checkout master
git merge v1.2.xxxx

非常简单,而且免除了一个代码库有众多分支难以管理的困扰。

这篇关于Git工作流: 主干开发tag上线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/922214

相关文章

找完工作该补充的东西

首先: 锻炼身体,包括乒乓球,羽毛球,都必须练习,学习,锻炼身体等是一个很重要的与人交际沟通的方式; 打牌,娱乐:会玩是一个人很重要的交际沟通的法宝; 摄影:这个是一个兴趣爱好,也是提高自己的审美,生活品质,当然也是与人沟通的重要途径; 做饭:这个的话就是对自己,对朋友非常有益的一件事情;

工作流Activiti初体验—流程撤回【二】

已经玩工作流了,打算还是研究一下撤回的功能。但是流程图里面并不带撤回的组件,所以需要自己动态改造一下,还是延续上一个流程继续试验撤回功能。《工作流Activiti初体验【一】》 完整流程图 我们研究一下分发任务撤回到发起任务,其他环节的撤回类似 撤回的原理大概如下: 将分发任务后面的方向清空,把发起任务拼接到原来的判断网关,然后结束分发任务,这样流程就到发起任务了 此时的流程如上图,

工作流Activiti初体验【一】

在这里记录一下我的Activiti历程:(以下示例不涉及真实业务,所有逻辑均建立在学习的基础上) bpmn图 发起任务我设置了一个权限组user1,只要是这个权限的用户都可以发起任务 分发任务我设置了一个用户组,用户组中每个用户都可以处理这步流程,只要有一个人处理这步任务,分发的流程就算结束了 分发任务这一环节还有个判断,允许任务下发和不允许任务下发 任务分发完成则来到子流程,每个被分

Eclipse+ADT与Android Studio开发的区别

下文的EA指Eclipse+ADT,AS就是指Android Studio。 就编写界面布局来说AS可以边开发边预览(所见即所得,以及多个屏幕预览),这个优势比较大。AS运行时占的内存比EA的要小。AS创建项目时要创建gradle项目框架,so,创建项目时AS比较慢。android studio基于gradle构建项目,你无法同时集中管理和维护多个项目的源码,而eclipse ADT可以同时打开

Python应用开发——30天学习Streamlit Python包进行APP的构建(9)

st.area_chart 显示区域图。 这是围绕 st.altair_chart 的语法糖。主要区别在于该命令使用数据自身的列和指数来计算图表的 Altair 规格。因此,在许多 "只需绘制此图 "的情况下,该命令更易于使用,但可定制性较差。 如果 st.area_chart 无法正确猜测数据规格,请尝试使用 st.altair_chart 指定所需的图表。 Function signa

WDF驱动开发-WDF总线枚举(一)

支持在总线驱动程序中进行 PnP 和电源管理 某些设备永久插入系统,而其他设备可以在系统运行时插入和拔出电源。 总线驱动 必须识别并报告连接到其总线的设备,并且他们必须发现并报告系统中设备的到达和离开情况。 总线驱动程序标识和报告的设备称为总线的 子设备。 标识和报告子设备的过程称为 总线枚举。 在总线枚举期间,总线驱动程序会为其子 设备创建设备对象 。  总线驱动程序本质上是同时处理总线枚

Git的安装以及使用

一.简单介绍 1.1版本控制 版本控制是指对软件开发过程中各种程序代码,配置文件及说明文档等文件变更管理,是软件配置管理的核心思想之一。 版本控制最重要的内容是追踪文件的变更,它将什么时候,什么人更改了文件的什么内容等信息忠实的记录下来。除此之外,版本控制的另一重要的功能是并行开发。软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高开发效率。

JavaWeb系列六: 动态WEB开发核心(Servlet) 上

韩老师学生 官网文档为什么会出现Servlet什么是ServletServlet在JavaWeb项目位置Servlet基本使用Servlet开发方式说明快速入门- 手动开发 servlet浏览器请求Servlet UML分析Servlet生命周期GET和POST请求分发处理通过继承HttpServlet开发ServletIDEA配置ServletServlet注意事项和细节 Servlet注

手把手教你入门vue+springboot开发(五)--docker部署

文章目录 前言一、前端打包二、后端打包三、docker运行总结 前言 前面我们重点介绍了vue+springboot前后端分离开发的过程,本篇我们结合docker容器来研究一下打包部署过程。 一、前端打包 在VSCode的命令行中输入npm run build可以打包前端代码,出现下图提示表示打包完成。 打包成功后会在前端工程目录生成dist目录,如下图所示: 把

Sapphire开发日志 (十) 关于页面

关于页面 任务介绍 关于页面用户对我组工作量的展示。 实现效果 代码解释 首先封装一个子组件用于展示用户头像和名称。 const UserGrid = ({src,name,size,link,}: {src: any;name: any;size?: any;link?: any;}) => (<Box sx={{ display: "flex", flexDirecti