【Git】如何优雅地使用Git中的tag来管理项目版本
目录
- tag
- tag 和 branch区别
- 操作命令
- 打tag,当前分支标记tag
- 提交到远程服务器
- 删除本地tag
- 删除远程tag
- 切换到特定的tag
- 查看所有tag
- 查看标签详细信息
- 好书推荐
tag
Git中的tag(标签)用于给项目在特定时间点(某个版本发布)时做一个记录,方便之后查看。标签类似于分支,但是他们是不可变的。
tag是对历史一个提交id的引用。
tag 和 branch区别
- branch是一个分支;tag是分支上的一个点;
- tag就是一个只读的branch,是不可变的;
- 一般为每一个可发布的版本打一个tag;
- 简单说比如branch有1.0,1.1等,其中1.0分支里可以有1.0.1,1.0.2这些tag;
- tag就像是一个标志一个点; branch是一个新的征程一条线;
- tag是静态的,branch要向前走;
- 稳定版本备份用tag,新功能多人开发用branch(开发完成后merge到master)。
操作命令
打tag,当前分支标记tag
git add .
git commit -m 'Release:new version'
git tag -a 1.0.3 -m “Release version 1.0.3″
其中
-
-a 1.0.3 是增加名为1.0.3的标签
-
-m 后面是这次打tag的备注
提交到远程服务器
//提交代码到服务器,并不会提交tag
git push origin master
//提交所有tags到远程服务器
git push origin --tags
提交特定的tag到服务器
git push orign <tag-name>
删除本地tag
git tag -d 1.0.3
删除远程tag
git push origin :ref/tags/1.0.3
切换到特定的tag
git checkout tags/<tag-name>
查看所有tag
git tag
查看标签详细信息
git show <tag-name>
好书推荐
微前端实战
就像微服务为后端系统带来了灵活性和可维护性,微前端也为基于浏览器的应用程序提供了同样的优势。
你可以将项目设计为包含多个单独的组件,每个组件中包括各自的接口、逻辑和存储功能,这样就可以独立开发这些组件,并在浏览器中组合使用它们。
《微前端实战》一书指导读者将微服务方法应用于前端领域。本书首先会介绍微前端的核心设计思想,之
后你将亲手创建一个电商应用程序,并在开发过程中处理一些实际问题,如服务端组合和客户端组合、路由、确保外观和交互的一致性等。最终,你将深入了解团队工作流模式,这种模式能够化地突显独立开发应用程序组件的优势。
相关文章:
【Git】如何优雅地使用Git中的tag来管理项目版本
目录 tagtag 和 branch区别操作命令打tag,当前分支标记tag提交到远程服务器删除本地tag删除远程tag切换到特定的tag查看所有tag查看标签详细信息 好书推荐 tag Git中的tag(标签)用于给项目在特定时间点(某个版本发布)…...
白骑士的PyCharm教学进阶篇 2.3 测试与自动化
系列目录 上一篇:白骑士的PyCharm教学进阶篇 2.2 高级调试技术 在现代软件开发中,测试和自动化是保证代码质量和项目稳定性的重要环节。PyCharm作为一款强大的Python IDE,提供了丰富的工具来支持单元测试和自动化测试。本篇将详细介绍单元测…...
spark写入redis报错空指针
aused by: java.lang.NullPointerException 1、spark集群 每个executor是否 与redis集群 网络策略是否通 2、写入redis的数据是否 有 null值 需要把null值 转成空字符串 3、可以用 pipleline 并行写数据...
【Material-UI】Autocomplete中的禁用选项:Disabled options
文章目录 一、简介二、基本用法三、进阶用法1. 动态禁用2. 提示禁用原因3. 复杂的禁用条件 四、最佳实践1. 一致性2. 提供反馈3. 优化性能 五、总结 Material-UI的Autocomplete组件提供了丰富的功能,包括禁用特定选项的能力。这一特性对于限制用户选择、提供更好的用…...
力扣287【寻找重复数】
给定一个包含 n 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。 你设计的解决方案必须 不修改 数组 nums 且只用常…...
学习笔记一
vector 在创建时指定初始大小和初始值: vector<int> a(5, 1) // 包含 5 个整数的 vector,每个值都为 1 可以使用 push_back 方法向 vector 中添加元素: a.push_back(7) // 将整数 7 添加到 vector 的末尾 可以使用 size(…...
星纪魅族双轮驱动遇阻:AI手机与造车梦能否照进现实?
在科技行业风起云涌的浪潮中,星纪魅族近期的一系列动作引起了广泛关注。从高层换血到全面押注AI,再到宣布造车计划,每一步都显得雄心勃勃,但深入剖析后不难发现,其未来发展之路实则布满荆棘。 星纪魅族选择“All in AI…...
深入理解 C 语言中的联合体
目录 引言 一、 联合体的定义与基本用法 1.联合体的定义 2.基本用法 二、 联合体与结构体的区别 1.结构体 2.联合体 3.对比 三、联合体的优势 1. 节省内存 2. 提高效率 3. 代码简洁性 四、联合体的存储细节 1.内存对齐 2.大小计算 五、联合体的高级用法 1.匿…...
Unity3D 物体圆周运动
Unity3D 实现一个 2D 物体沿着圆周进行运动。 物体圆周运动 前段时间在开发一个小游戏时,需要实现火箭沿着一个圆形轨道进行圆周运动。 以前面试的时候也被问到过这类问题(如何让一个 2D 物体做圆周运动),所以还是记录一下实现…...
无人机无人车固态锂电池技术详解
随着无人机和无人车技术的飞速发展,对高性能、高安全性电池的需求日益迫切。固态锂电池作为下一代电池技术的代表,正逐步从实验室走向市场,为无人机和无人车等应用领域带来革命性的变化。相比传统液态锂电池,固态锂电池在能量密度…...
策略模式的一次应用
项目的需求是将一组图像按照相似度分类。 采用了模板匹配计算相似度的实现方式。 #include <opencv2/core.hpp> #include <openev2/core/utility.hpp> #include <opencv2/highqui.hpp> #include <openav2/imgproc.hpp> cv::Mat image matched; double …...
终极指南:3D 数据科学系统和工具
该蓝图分享了 AI 方法、算法、工具、模板和 6 步系统,用于为 3D 模型构建数据科学解决方案:3D 数据采集、分析、建模、可视化和部署。 3D 数据科学系统的核心组件和交叉学科 欢迎来到雲闪世界。建立 3D 数据科学项目涉及结合数据工程、数据分析和可视…...
Docker Container(容器)
一、概念 容器是镜像的运行实体。镜像是静态的只读文件,而容器带有运行时需要的可写文件层,并且容器中的进程属于运行状态。即容器运行着真正的应用进程。容器有初建、运行、停止、暂停和删除五种状态。 虽然容器的本质是主机上运行的一个进程…...
确保Apache Flink流处理的数据一致性和可靠性
Apache Flink是一个用于大规模数据流处理的开源框架,它提供了多种机制来保证在分布式环境中数据的一致性和可靠性。在实时流处理中,数据的一致性和可靠性是至关重要的,因为它们直接影响到数据处理结果的准确性和系统的稳定性。本文将详细介绍…...
MUSE Multi-View Contrastive Learningfor Heterophilic Graphs
发表于:CIKM 推荐指数: #paper/⭐ 一句话总结:融合了GCN(A,X)和GCN(A,I),创新性不足,因此只能B会 流程: 融合部分: h i f h i s λ i h i c h_i^fh_i^s\lambda_ih_i^c hifhisλihic 由于有n个 λ \lambda λ.因此作者加了如下优化: L ϕ ∑ i 1 N λ i s ( h i …...
搭建pxe网络安装环境实现服务器自动部署
一:主机查看本地镜像挂载的位置 [rootnginx ~]# df [rootnginx ~]# cd /rhe17 [rootnginx rhe17]# ls [rootnginx rhe17]# cd isolinux/ [rootnginx isolinux]# ls文件内容指定了触法镜像,内核,显示界面等 二:通过网络将以上文件…...
在VScode中导入conda环境的记录【原创】
今天在vscode编辑器中运行一个python代码,发现终端可以运行,但是编辑器中点击Run会显示缺包,但是python包明明是有的,在自己的conda环境中。后来发现,是vscode没有发现我自己创建的conda环境,在vscode中导入…...
机器学习 第10章-降维与度量学习
机器学习 第10章-降维与度量学习 10.1 k近邻学习 k近邻(k-Nearest Neighbor,简称kNN)学习是一种常用的监督学习方法其工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个“邻居”的信息来进行预测。通…...
手机三要素接口怎么对接呢?(二)
一、什么是手机三要素? 手机三要素又叫运营商三要素,运营商实名认证,运营商实名核验,手机三要素实名验证,手机三要素实名核验,每个人的称呼都不同,但是入参和出参是一样的。 输入姓名、身份证…...
【Devops】CertD 完全免费、自动申请、自动部署SSL证书一站式管理工具 | 自动化HTTPS | 3个月SSL自动轮换
CertD CertD 是一个免费全自动申请和自动部署更新SSL证书的工具。 后缀D取自linux守护进程的命名风格,意为证书守护进程。 关键字:证书自动申请、证书自动更新、证书自动续期、证书自动续签 一、特性 本项目不仅支持证书申请过程自动化,还…...
高级Vue.js面试指南:关键概念、最佳实践和性能优化策略
目录 1. 什么是 Vue.js? 2. Vue的生命周期钩子是什么? 3. 计算属性和侦听器有什么区别? 4. 什么是虚拟DOM? 5. 解释 Vue 的响应式系统原理。 6. Vue中的v-if和v-show有什么区别? 7. 如何在 Vue 中使用路由? 8. 描述组件间的通信方式。 9. 什么是单文件组件? 10…...
MySQL基础练习题21-按日期分组销售产品
目录 题目 准备数据 分析数据 总结 题目 找出每个日期、销售的不同产品的数量及其名称。每个日期的销售产品名称应按词典序排列。 返回按 sell_date 排序的结果表。 准备数据 ## 创建库 create database db; use db;## 创建表 Create table If Not Exists Activities (s…...
oracle(19c)用户管理
简介 本文介绍 Oracle 中的用户管理,包含以下内容: 概念介绍 系统用户 解锁 hr 用户 创建用户 用户相关案例 使用 Profile 管理用户口令 Oracle 的认证方式 重置管理员(sys)密码 1. 概念介绍 使用前可以自行安装oracle数据库 oracle19c安装&a…...
数学建模--禁忌搜索
目录 算法基本原理 关键要素 应用实例 实现细节 python代码示例 总结 禁忌搜索算法在解决哪些具体类型的组合优化问题中最有效? 禁忌搜索算法的邻域结构设计有哪些最佳实践或案例研究? 如何动态更新禁忌表以提高禁忌搜索算法的效率和性能&#…...
RabbitMQ动态创建生产者动态创建消费者
生产者 controller package org.log.rabbitmqdemo1.demos.web.producer;import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;RestController public class Produc…...
HTML-07.表格标签
一、要制作的表格如下 二、代码如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>表格标签<…...
[Git][分支管理][下]详细讲解
目录 1.合并冲突2.分支管理策略3.分支策略1.基本原则2.bug分支3.删除临时分支 1.合并冲突 在实际分⽀合并的时候,有时候可能会遇到代码冲突的问题,例如: dev分支在写一部分代码,而master分支也没闲着,也在写着同一份代…...
Python面试宝典第27题:全排列
题目 给定一个不含重复数字的数组nums,返回其所有可能的全排列 。备注:可以按任意顺序返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]] 示例 2: 输…...
C语言调试宏全面总结(六大板块)
C语言调试宏进阶篇:实用指南与案例解析C语言调试宏高级技巧与最佳实践C语言调试宏的深度探索与性能考量C语言调试宏在嵌入式系统中的应用与挑战C语言调试宏在多线程环境中的应用与策略C语言调试宏在并发编程中的高级应用 C语言调试宏进阶篇:实用指南与案…...
C++学习之路(1)— 第一个HelloWorld程序
C学习之路(1)— 第一个HelloWorld程序 一、前言 C在C语言的基础上添加了对面向对象编程和泛型编程的支持,在 20世纪90年代便是最重要的编程语言之一,并在21世纪仍保持强劲势头。C继承了C语言高效、简洁、快速和可移植性的传统。 …...
Ionic 滑动框:实现高效移动应用交互体验
Ionic 滑动框:实现高效移动应用交互体验 Ionic 是一个强大的开源框架,用于构建高性能、高质量的移动端和网页应用。它以其优雅的UI组件和强大的功能而闻名,其中滑动框(Slider)是Ionic UI组件库中的一个重要组成部分。滑动框提供了一种直观、互动的方式来展示图片、文本或…...
书生大模型实战营第三期——入门岛
第一关:Linux基础知识 任务如下: 任务描述闯关任务完成SSH连接与端口映射并运行hello_world.py可选任务 1将Linux基础命令在开发机上完成一遍可选任务 2使用 VSCODE 远程连接开发机并创建一个conda环境可选任务 3创建并运行test.sh文件 1. 使用密码进行…...
Android入门之路 - WebView加载数据的几种方式
之前客户端加载H5时遇到了一些问题,我为了方便解决问题,所以将对应场景复刻到了Demo中,从之前的网络加载模拟为了本地加载Html的方式,但是没想到无意被一个基础知识点卡了一些时间,翻看往昔笔记发现未曾记录这种基础场…...
git的rebase 和 merge 的区别
rebase 和 merge 的区别 Merge(合并)和 Rebase(变基)是 Git 中两种常用的分支整合方式,它们有不同的工作原理和适用场景: Merge(合并): ● Merge 操作将两个分支的不同提…...
科普文:JUC系列之Java中7种阻塞队列BlockingQueue的双锁源码解读
概叙 Queue接口与List、Set同一级别,都是继承了Collection接口**。队列是一种数据结构.它有两个基本操作:在队列尾部加人一个元素,和从队列头部移除一个元素,队列以一种先进先出的方式管理数据。 队列分为两种&#x…...
Kafka生产者(二)
1、生产者消息发送流程 1.1 发送原理 在消息发送的过程中,涉及到了两个线程——main 线程和 Sender 线程。在 main 线程中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给 RecordAccumulator,Sender 线程不断从 RecordAccumulator 中拉取…...
ReentrantLock源码分析
文章目录 一、AQS1、state属性2、等待队列3、条件变量 二、ReentrantLock1、非公平锁实现原理1.1 获取锁1.2 释放锁1.3 可重入原理1.4 可打断原理不可打断可打断 1.5 公平锁实现原理1.6 条件变量原理awaitsignal 一、AQS AQS全称是 AbstractQueuedSynchronizer,是阻…...
(四十一)大数据实战——spark的yarn模式生产环境部署
前言 Spark 是一个开源的分布式计算系统。它提供了高效的数据处理能力,支持复杂的数据分析和处理任务,是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。Spark Core:实现了Spark的基本功能,包含任务调度、内存管理、错误…...
反转链表 II(LeetCode)
题目 给你单链表的头指针 和两个整数 和 ,其中 。请你反转从位置 到位置 的链表节点,返回 反转后的链表 。 解题 class ListNode:def __init__(self, value0, nextNone):self.value valueself.next nextdef reverseBetween(head: ListNode, lef…...
Spring Boot 整合 Dubbo3 + Nacos 2.4.0
准备工作:Nacos 一、前置工作 安装Nacos,参考:Nacos 快速开始 此次安装 Nacos 最新版本:2.4.0 单机版 安装教程:Linux 安装 nacos 2.4.0-CSDN博客 二、创建配置文件 创建命名空间 新增配置文件 dubbo:application:i…...
力扣-200.岛屿数量
刷力扣热题–第二十四天:200.岛屿数量 新手第二十四天 奋战敲代码,持之以恒,见证成长 1.题目描述 2.题目解答 这道题刚开始想的确实想的绞尽脑汁的,看了相关解答才明白的,三种方法,这里想先用两种方法进行实现&#…...
学习 MediaPipe 手部检测和手势识别
学习 MediaPipe 手部检测和手势识别 1 手部检测1.0 Demo1.1 mediapipe.solutions.hands.Hands1.1.1 Hands 初始化1.1.2 process 检测 1 手部检测 1.0 Demo import time import cv2 import mediapipe as mpmpHands mp.solutions.hands hands mpHands.Hands(model_complexity…...
TypeScript 接口
TypeScript的核心原则之一是对值所具有的结构进行类型检查。 它有时被称做“鸭式辨型法”或“结构性子类型化”。即如果一个东西走起来像鸭子、叫起来像鸭子,那它就是鸭子。 通过定义接口,为特定的结构赋予了一个明确的名称和规范。 在 TypeScript 中&a…...
基于JSP、java、Tomcat三者的项目实战--校园交易网(3)主页--添加商品功能
技术支持:JAVA、JSP 服务器:TOMCAT 7.0.86 编程软件:IntelliJ IDEA 2021.1.3 x64 前文三篇登录和注册功能的实现 基于JSP、java、Tomcat、mysql三层交互的项目实战--校园交易网(1)-项目搭建(前期准备工作…...
自定义SQL Server数据访问层:打造专属数据交互之门
自定义SQL Server数据访问层:打造专属数据交互之门 在软件开发中,数据访问层(Data Access Layer, DAL)扮演着至关重要的角色,它作为应用程序与数据库之间的桥梁,负责所有的数据存取操作。SQL Server作为一…...
【课程总结】Day15(中):图像分割之实例分割
前言 在上一章,我们通过学习了解了语义分割以及U-Net网络结构【课程总结】Day15(上):图像分割之语义分割。在本章,我们将学习了解图像分割中的实例分割以及相关的数据预处理注意事项。 图像分割 语义分割 语义分割…...
【Linux】常见指令
目录 一、指令的理解二、Linux的目录结构三、XShell 下的热键三、shell命令以及运行原理四、Linux常见的指令汇总1. ls 指令1.1 常见的一些有关 ls 的别名1.2 隐藏文件或目录1.3 * 的匹配 2. pwd 指令3. cd 指令3.1 cd . . 指令 4. touch指令5. mkdir指令6. rmdir指令 &&am…...
redis学习(一)
背景 redis是一个高性能的KV数据库,在工作中经常用到,可被用作缓存、分布式锁等,作为被高频使用的组件,了解其实现对工作有很大帮助(包括面试)。为此,在对redis有一定的使用、了解之后ÿ…...
LabVIEW在DCS中的优势
DCS(Distributed Control System,分布式控制系统)是一种用于工业过程控制的自动化系统。它将控制任务分散到多个控制单元中,通过网络连接和协调这些单元来实现对整个过程的监控和控制。DCS通常用于大型工业设施,如化工…...
JavaScript青少年简明教程:DOM和CSS简介
JavaScript青少年简明教程:DOM和CSS简介 DOM简介 DOM(Document Object Model)将文档表示为一个树形结构,其中每个节点都是一个对象,每个对象都有其自身的属性和方法。 通过对DOM的操作,开发者可以使用编…...
攀岩者在巨蟒峰打入岩钉获刑 名胜古迹受损被判赔
11月12日,最高人民法院发布了十年来环境资源审判的十件有重大影响力的案件。其中,“张某明、毛某明、张某故意损毁名胜古迹案和江西省上饶市人民检察院诉张某明、毛某明、张某生态破坏民事公益诉讼案”尤为引人关注。2017年4月左右,张某明、毛某明、张某三人计划前往三清山风…...
专家解读金价未来走势 多因素影响短期回调
国际金价连续四日下跌,跌破2600美元/盎司。截至11月14日发稿时,现货黄金价格为2564.08美元/盎司,纽约黄金CFD价格为2568.57美元/盎司。当天早上,“黄金”相关话题也登上微博热搜。国内品牌金价格方面,周大福官网显示近期足金价格为775元/克。关于此次金价下跌的原因,东方…...
吉利开启核心业务整合 极氪领克战略合并
自2024年9月1日发布《台州宣言》以来,吉利宣布从战略扩张转向战略聚焦。旗下各业务板块加速整合,目前这一进程已触及核心业务。据可靠消息,极氪汽车将与领克汽车进行战略整合,目标是实现极氪对领克的控股,相关消息将在近期正式公布。领克汽车成立于2017年,由吉利汽车集团…...
稳地产税收政策或近期出台 优惠政策即将推出
今年最后两个月,财政部门将采取多种措施补充财力,保障各项重点支出,力争完成全年预算目标任务。近期,支持房地产市场的相关财政举措和顶层文件陆续出台,专家学者认为,支持房地产市场的增量财政政策即将实施,年内土地收储债券可能启动发行,相关税收政策也有望在近期出台…...
人道不能被政治化饥饿不能被武器化
人道不能被政治化饥饿不能被武器化11月12日举行的联合国安理会会议上,中国常驻联合国代表傅聪表示,人道问题不能被政治化,饥饿更不能被武器化,这是国际人道法规定的基本底线。然而在持续13个月的加沙冲突中,平民的基本需求被反复剥夺,所有的人道底线被一再突破。以色列一…...
医生为失眠女友麻醉20多针致其身亡 悲剧源于过量注射
四川一医院麻醉科医生瞿某为缓解女友陈某的失眠症状,在酒店里多次将丙泊酚通过脚踝注射方式注入其体内。2024年3月7日5时,瞿某在最后一次注射后离开酒店,并留下约100毫克丙泊酚给女友。之后,陈某因急性中毒身亡。四川省仁寿县人民法院于11月1日公开了该案的一审刑事判决书,…...