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

相关文章

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

SpringBoot集成LiteFlow工作流引擎的完整指南

《SpringBoot集成LiteFlow工作流引擎的完整指南》LiteFlow作为一款国产轻量级规则引擎/流程引擎,以其零学习成本、高可扩展性和极致性能成为微服务架构下的理想选择,本文将详细讲解Sp... 目录一、LiteFlow核心优势二、SpringBoot集成实战三、高级特性应用1. 异步并行执行2

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

SpringBoot整合Flowable实现工作流的详细流程

《SpringBoot整合Flowable实现工作流的详细流程》Flowable是一个使用Java编写的轻量级业务流程引擎,Flowable流程引擎可用于部署BPMN2.0流程定义,创建这些流程定义的... 目录1、流程引擎介绍2、创建项目3、画流程图4、开发接口4.1 Java 类梳理4.2 查看流程图4

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF