【Git教程】(九)版本标签 —— 创建、查看标签,标签的散列值,将标签添加到日志输出中,判断标签是否包含特定的提交 ~
Git教程 · 版本标签(tag)
- 1️⃣ 创建标签
- 2️⃣ 查看存在的标签
- 3️⃣ 标签的散列值
- 4️⃣ 将标签添加到日志输出中
- 5️⃣ 判断tag是否包含特定的提交
- 🌾 总结
大多数项目都是用 1.7.3.2
和 “ gingerbread
” 这样的数字或名称来标识软件版本的。在 Git 中,我们可以用标签 (tag) 来做这件事。
1️⃣ 创建标签
标签化某次提交
- 创建一个普通的标签
在下面的例子中,我们会为 master 分支上的当前版本创建一个名为1.2.3.4
的标签,并 将其注释为“Freshly built.
”。> git tag 1.2.3.4 master -m "Freshly built."
- 推送某单一标签
推送操作通常不会自动传送标签。但如果我们明确指定了某个标签名,该标签就可以
被传送了。> git push origin 1.2.3.4
另外,使用带 -tags
参数的 push
命令也可以用来推送被传送分支的标签。
> git push --tags
如果我们在这里使用了 GnuPG ( 即Gnu Privacy Guard,简称GnuPG 或 GPG, 是一种公私密钥加密方式。用户可通过某种数字证书生成一对公私密钥,以此来确保数据的安全传输) , 可以通过-s
参数来提供该标签所带的数字签名。当然,这个前提是我们已经在 Git 中输入了默认 EMail 地址,而该地址同时也是注册 GnuPG 时所用的用户ID。
> git tag 1.2.3.4 master -s -m "Signed."
请注意! 如果你创建标签时使用了 -m
、-a
、-s
或 -u
这些参数,Git 会将在版本库中将标签 作为一个独立对象来创建。该对象中会包含相关用户以及创建时间等信息。而要是如果没有使用这些选项,Git 就只会创建一个所谓的轻量级标签,其中只有用于识别的提交散列值。
2️⃣ 查看存在的标签
如果我们不带任何参数地调用 tag
命令,就会列出当前所有的标签。这可能会是一个长长的清单。对此,我们可以通过 -l
参数使用像 1.2.*
这样的表达模式来减少输出。
> git tag -l 1.2.*
1.2.0.0 Beginning.
1.2.3.3 New build.
1.2.3.4 Recently built.
3️⃣ 标签的散列值
我们可以通过带 --tags
参数的 show-ref
命令来列出标签对象的提交散列值。另外,你也可以通过 -dereference
参数同时打印出其相应提交对象的散列值,它们将会被打上 ^{}
标记。
> git show-ref --dereference --tags
...
f63cd7181787c9973788a97648796468cec474aa refs/tags/1.2.3.3
cef89bbd712laac3cc38fe3a342045c9401bd6b9 refs/tags/1.2.3.3^{}
4a0228bdd0ab5e0180422c82bf706c42671a8laf refs/tags/1.2.3.4
cef89bbd712laac3cc38fe3a342045c9401bd6b9 refs/tags/1.2.3.4^{}
4️⃣ 将标签添加到日志输出中
我们可以使用带 -decorate
参数的 log
命令标签与各提交的分支。
> git log --oneline --decorate
cef89bb (HEAD, tag: 1.2.3.4) Again, everything rebuilt.
9d4caed Merge branch 'Other'.
dcd1c6c Changed.
ccela68 (tag:1.2.3.3)Something changed
5️⃣ 判断tag是否包含特定的提交
我们常常会面临一个问题,就是要判断某一特定的功能或 bug 修复是否被包含在客户所安装的那个版本中。如果其对应的提交是已知的,问题显然很容易回答。用带 -contains
参数的 tag
命令就可以列出历史记录中包含该提交的所有标签。
> git tag --contains f63cd71
1.2.3.3
1.2.3.4
请注意! 如果有一些提交曾经被复制过,就有可能会对上述结果产生误导。例如,如果 这些版本是通过捡取操作被放在一起的,要想找出特定修改是否包括在内就非常麻烦了。对此,我们可以用 log
命令时在特定标签后面加上对注释内容的搜索。
> git log --oneline 1.2.3.3 | grep "a comment."
但这也只有在我们所添加的注释中包含了能用于识别修改的信息时才行得通,这需要我们往其中添加有意义的注释或者 bug 跟踪管理系统中的ID 。另外,这也是我们应该避免复制提交的重要理由之一。
注意,如果我们需要一个可移动的标志,比如用来标识区分当前生产环境中已上线/未上线的状态,那么应当使用一个分支,而不是标签。
🌾 总结
- 创建标签:即用 tag 命令来创建标签。
- 推送:push 命令可以只用来传送那些被明确指定的标签,例如这样
git push origin 1.2.3.4
, 当然,如果我们使用了-tags
参数就不用指定标签了。 - 拉回与获取:
pull
和fetch
这两个命令都会自动获取其所涉及分支中的所有标签,除非我们在命令中使用了--no-tags
参数。 - 显示所有标签:这件事可以通过
git tag -l
命令来完成。 - 在日记中显示标签:我们可以使用
git log-decorate
命令。 - 共享标签中的提交:如果想要知道某一标签中是否包含了某一提交,我们可以用带
-contains
参数的 tag 命令。
《【Git教程】(八)版本库间的交换 —— 版本库的克隆与命名,分支监控、命名、拉取及推送 ~》
《【Git教程】(十)版本库之间的依赖 —— 项目与子模块之间的依赖、与子树之间的依赖 ~》
相关文章:
【Git教程】(九)版本标签 —— 创建、查看标签,标签的散列值,将标签添加到日志输出中,判断标签是否包含特定的提交 ~
Git教程 版本标签(tag) 1️⃣ 创建标签2️⃣ 查看存在的标签3️⃣ 标签的散列值4️⃣ 将标签添加到日志输出中5️⃣ 判断tag是否包含特定的提交🌾 总结 大多数项目都是用 1.7.3.2和 “ gingerbread” 这样的数字或名称来标识软件版本的。在 …...
MemberPress配置和使用会员登录页面
目录 隐藏 创建会员登录页面 编辑登录页面 设计您的登录页面 链接到您的登录页面 创建会员登录页面 要创建MemberPress会员登录页面,您需要做的就是导航到 MemberPress > 设置 > 页面选项卡,然后在页面顶部附近的“MemberPress 登录页面”…...
分享一个预测模型web APP的功能模块和界面的设计
一个临床预测模型web APP功能模块与界面设计 随着医疗技术的不断进步,web APP是临床预测模型在医学领域的应用的重要形式。这里分享一个web APP的设计,手里有医学预测模型的可以尝试将其构建成webAPP,进而在临床实践中体验预测模型带来的便利…...
智慧公厕是智慧城市建设中不可或缺的一部分
智慧城市的数字化转型正在取得显著成效,各项基础设施的建设也在迅速发展,其中智慧公厕成为了智慧城市体系中不可或缺的一部分。作为社会生活中必要的设施,公共厕所的信息化、数字化、智慧化升级转型能够实现全区域公共厕所管理的横向打通和纵…...
leetcode热题100.爬楼梯(从二进制到快速幂)
Problem: 70. 爬楼梯 文章目录 题目思路Code复杂度 题目 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方…...
使用Docker定时备份数据
文章目录 一、Docker镜像制作二、MySQL数据备份三、Minio数据备份四、数据跨服务器传输五、Nginx日志分割六、Docker启动七、Docker备份日志 一、Docker镜像制作 镜像制作目录 mc下载地址 - rsyncd.conf # https://download.samba.org/pub/rsync/rsyncd.conf.5port 873 uid …...
conda搭建与管理python环境
conda搭建与管理python环境.md Anaconda下载地址Miniconda下载地址Linux下安装1.执行安装2.查看可安装的python版本3.创建环境4.激活环境5.安装python的工具包5.退出环境6.删除指定的环境7.设置默认的环境 Window下安装1.执行安装2.配置环境变量3.检查是否安装成功4.通过conda配…...
获取当前的年、月、日、时、分、秒,并将这些信息用作保存 Excel 文件的前缀
要获取当前的年、月、日、时、分、秒,并将这些信息用作保存 Excel 文件的前缀,你可以使用 Python 的 datetime 模块来获取当前时间,并格式化时间字符串,然后使用 pandas 库将数据保存为 Excel 文件。示例代码: from d…...
Gitlab全量迁移
Gitlab全量迁移 一、背景1.前提条件 一、背景 公司研发使用的Gitlab由于服务器下架需要迁移到新的Gitlab服务器上。Gitlab官方推荐了先备份然后再恢复的方法。个人采用官方的另外一种方法,就写这篇文章给需要的小伙伴参考。 源Gitlab: http://old.mygitlab.com #地…...
Golang ProtoBuf 初学者完整教程:语法
一、编码规范推荐 1、文件名使用小写下划线的命名风格,例如 lower_snake_case.proto 2、使用 2 个空格缩进 3、包名应该和目录结构对应 4、消息名使用首字母大写驼峰风格(CamelCase),例如message StudentRequest { ... } 5、字段名使用小写下划线的风格…...
使用.cc域名的优势
域名注册越来越难了,很多人选择结尾加123、56、365等等数字,总感觉怪怪的。那么能不能选择其他后缀的域名呢?我感觉可以,大部分用户都不会去看域名,只有做技术的会去关注。 使用.cc域名的优势 很多好域名,…...
存储器管理单元MMU概述
在ARM系统中,存储器管理单元MMU主要完成以下工作: ● 虚拟存储空间到物理存储空间的映射。在ARM中采用了页式虚拟存储管理。它把虚拟地址空间分成一个个固定大小的块,每一块称为一页,把物理内存的地址空间也分成同样大小的页。页…...
了解监控易(25):网络拓扑管理,可视化监控网络,快速定位问题
在复杂的网络环境中,快速准确地定位问题、确保网络的稳定运行是至关重要的。监控易的网络拓扑管理功能,正是为了解决这一问题而设计的。该功能通过可视化监控网络,帮助用户迅速把握网络整体状况,快速定位并解决问题。 监控易的网络…...
C#学习笔记10:winform上位机与西门子PLC网口通信_中篇_winform的窗口操作设计、日志的添加使用
今日继续我的C#winform上位机学习之路 这系列笔记的目标是尝试编写一个能够与西门子PLC进行以太网口通信的上位机软件。 文章提供完整代码解释、设计点解释、测试效果图、完整工程下载 本章主要学习:Winform多个窗体的一些操作 、无边框窗体的创建、Combox组件插…...
第14章 大数据与数据科学知识点梳理
第14章 大数据与数据科学知识点梳理(附带页码) ◼ 原则:组织应仔细管理与大数据源相关的元数据,以便对数据文件及其来源和价值进行准确的清单管理。P386 ◼ 大数据:数据量大(Volume)、数据更新…...
FHE全同态加密简介
1. 何为FHE? FHE (Fully homomorphic encryption): 是一种隐私技术,支持直接对密文进行计算,而无需对密文先解密再计算。即,任何第三方或云厂商,都可对敏感信息的密文进行处理,而无需访问密文内…...
【vue】跨组件通信--依赖注入
import { provide,inject } from vue provide:将父组件的数据传递给所有子组件(子孙都有)inject:接收provide 项目文件结构 App.vue是Header.vue的父组件,Header.vue是Nav.vue的父组件 传值过程 App.vue <tem…...
Aritest+python+Jenkins解放双手iOS/Android自动化
ARITest、Python 和 Jenkins 可以结合在一起创建一个自动化测试解决方案,实现持续集成和持续测试的目标。以下是三者如何协同工作的基本概念: 1. **ARITest**: ARITest 是一款功能全面的自动化测试工具,提供 UI 自动化、接口自…...
Problem #7 [Medium]
This problem was asked by Facebook. Given the mapping a = 1, b = 2, … z = 26, and an encoded message, count the number of ways it can be decoded. For example, the message ‘111’ would give 3, since it could be decoded as ‘aaa’, ‘ka’, and ‘ak’. Y…...
MySQ数据库: MySQL数据库的安装配置 ,图文步骤详细,一篇即可完成安装完成! MySQL数据库如何与客户端连接
LiuJinTao: 2024年4月14日 文章目录 MySQL的安装配置1. 下载2. 安装 三、 MySQL 启动与停止1. 第一种 方式:2. 第二种方式: 四、MySQL 客户端连接2. 方式二: MySQL的安装配置 1. 下载 官方下载网址:https://www.mysq…...
vue3+vant自动导入+pina+vite+js+pnpm搭建项目框架
vue3vant自动导入pinavitejspnpm搭建项目框架 文章目录 vue3vant自动导入pinavitejspnpm搭建项目框架1. 安装pnpm(如果还没有安装):2. 创建项目目录并进入该目录:3. 初始化项目:4. 安装Vite作为构建工具:5.…...
使用 Axios 处理 AxiosError 的三种常见方法
在使用 Axios 时处理 AxiosError 有几种常见的方法: 使用 try-catch 语句捕获异常: try {const response await axios.get(/api/data);// 处理响应数据 } catch (error) {if (error.response) {// 请求成功但状态码不在 2xx 范围console.log(error.response.data);console.l…...
linux上安装Tomcat
安装Tomcat 安装JDK https://www.oracle.com/java/technologies/downloads/#license-lightbox mkdir -p /usr/java tar xf jdk-11.0.22_linux-x64_bin.tar.gz ln -sv /usr/java/jdk /usr/java/jdk-11.0.22配置环境变量: cat > /etc/profile.d/java.sh <&…...
Ubuntu20.04安装ROS过程记录以及常见报错处理
官网安装步骤如下: http://wiki.ros.org/cn/noetic/Installation/Ubuntu#A.2BXwBZy1uJiMU- 第一个:添加ROS软件源 sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-la…...
PaddleOCR 图片日期识别
目录 一 . 获取图片信息种对应坐标区域日期信息 (类型为1:http链接 类型为 2本地图片路径) 二 . ocr图片识别日期信息获取,调用获取图片区域相应位置方法 三 . 如有所需获取rtsp流回放格式 四 . 完整代码如下 (…...
HTML5学习记录
简介 超文本标记语言(HyperText Markup Language,简称HTML),是一种用于创建网页的标准标记语言。 编辑器 下载传送门https://code.visualstudio.com/ 下载编辑器插件 标题 标题通过 <h1> - <h6> 标签进行定义。 …...
提升法律文书起草效率:AlphaGPT 助力律师快速生成诉讼和仲裁文件
法律文书起草对于法律专业人士而言是一项基础而关键的任务。无论是民事、刑事还是行政诉讼,以及仲裁案件,精确的法律文书撰写对于案件的成功至关重要。然而,这一过程往往既耗时又复杂,尤其是在处理复杂的案情和面对当事人难以理解…...
大数据之 Hive 快速搭建的详细步骤
Hive hive 搭建三种模式: 内嵌模式本地模式远程模式内嵌模式 Hadoop 和 Hive 整合 修改 hadoop/etc/下的 core-site.xml: <property><name>hadoop.proxyuser.root.hosts</name><value>*</value> </property> <property><nam…...
从入门到高级的99个python知识点
大家好,想掌握Python编程语言,从零基础的小白晋升为大神?没问题!接下来我们将以轻松有趣的方式,逐一解锁Python学习路上的99个关键知识点。每一步都将结合实际应用场景、函数功能解析及简洁代码演示,带你深…...
设计模式之备忘录模式(上)
备忘录模式 1)概述 1.定义 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,可以在以后将对象恢复到原先保存的状态。 2.作用 备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便…...
新手做网站做那个/南宁seo外包靠谱吗
关于SSL/TLS介绍见文章 SSL/TLS原理详解。 关于证书授权中心CA以及数字证书等概念,请移步 OpenSSL 与 SSL 数字证书概念贴 。 openssl是一个开源程序的套件、这个套件有三个部分组成:一是libcryto,这是一个具有通用功能的加密库,里…...
乐清建站公司哪家好/推广关键词怎么设置
文章目录概述安装Java VS Scalaval 和 var基本数据类型lazy在Scala中的应用开发工具IDEAMaven概述 https://www.scala-lang.org/ Scala combines object-oriented and functional programming in one concise, high-level language. Scala’s static types help avoid bugs in…...
珠海手机网站建设/站长之家关键词挖掘工具
在以下类中添加 description 字段后, class Colors(models.Model):colors models.CharField(u颜色, max_length10)description models.CharField(u描述, max_length10)def __str__(self):return self.colors执行以下初始化数据库的步骤,报错 C:\Pychar…...
aspcms网站栏目调用/昆明百度推广开户
Ansibel之roles的使用 roles介绍 roles能够根据层次型结构自动装载变量文件、task以及handlers等。简单来讲,roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们,roles一般用于基于主机构建服务的…...
电子商务网站设计代做/郑州关键词排名顾问
前沿就是关于摘苹果的数量。。。。。。。。。。。。 解题思路:利用自身身高加上凳子的高度进行 原题:参考洛谷官方 一、实现: #输入参数 high1list(map(int,input().split( ))) high2int(input())#实现摘苹果 nums0 for i in range(len…...
佛山网站建设专家/seo代码优化工具
答案:请安装以下步骤在Windws XP进行释放并重新获得一个ID地址的操作:1。点击“开始”按钮,然后点击“附件”选项再点击“命令提示符”。2。在DOS命令行模式输入以下命令“ipconfig /release”然后按回车键,使用此命令可以释放IP地…...