git基础-tagging

2024-03-28 16:20
文章标签 基础 git tagging

本文主要是介绍git基础-tagging,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

tagging

与大多数版本控制系统一样,Git具有将存储库历史中的特定点标记为重要tag的能力。通常,人们使用此功能来标记发布点(例如v1.0,v2.0等)。在本节中,将学习如何列出现有的标签,如何创建和删除标签,以及不同类型的标签是什么。

显示tag列表

该命令按字母顺序列出标签;它们显示的顺序没有真正的重要性。

还可以搜索与特定模式匹配的标签。例如

PS:

列出标签通配符需要使用 -l 或 --list 选项。

如果只想要整个标签列表,运行 git tag 命令会隐式地假设我们想要一个列表,并提供一个在这种情况下,使用 -l 或 --list 是可选的。

然而,如果提供了一个通配符模式来匹配标签名称,那么使用 -l 或 --list 是强制的。

创建标签

Git支持两种类型的标签:轻量级标签和附注标签。

轻量级标签非常类似于不会改变的分支——它只是指向特定提交的指针。

然而,附注标签存储为Git数据库中的完整对象, 他们是经过校验的,包含标签者的姓名、电子邮件和日期,有一个标签消息,并且可以使用GNU隐私保护(GPG)进行签名和验证。通常建议创建附注标签,以便可以获取所有这些信息

但如果需要一个临时标签或出于某种原因不想保留其他信息,轻量级标签也是可用的。

辅助标签

在Git中创建一个附注标签很简单。最简单的方法是在运行tag命令时指定 -a。

-m 参数指定了一个与标签一起存储的标签消息。如果没有为附注标签指定消息,Git会启动编辑器,以便输入消息。

可以使用 git show 命令查看标签数据以及被标记的提交。

这会显示标签者信息、标签日期以及注释信息,然后再显示提交信息。

轻量级标签

另一种打标签的方法是使用轻量级标签。这基本上就是将校验和存储在文件中 - 没有保留其他信息。要创建轻量级标签,不要提供任何 -a、-s 或 -m 选项,只需提供一个标签名称。

这一次,如果在标签上运行 git show 命令,将看不到额外的标签信息。该命令只会显示提交信息。类似如下的信息:

$ git show v1.4-lw

commit ca82a6dff817ec66f44342007202690a93763949

Author: Scott Chacon <schacon@gee-mail.com>

Date:   Mon Mar 17 21:52:11 2008 -0700

Change version number

后期打签

可以针对某一commit id打签,我简单测试用仓库的提交历史如下:

可以针对commit id 7db1252补打标签,如下

推送标签到远程服务器

默认情况下,git push 命令不会将标签传输到远程服务器。在创建标签后,需要显式地将标签推送到共享服务器。这个过程就像更新远程分支一样 - 可以运行 git push origin <tagname>。

如果有很多标签需要一次性推送到远程,也可以使用 git push 命令的 --tags 选项。这将传输所有尚未存在于远程服务器上的标签。

删除标签

要在本地仓库中删除一个标签,可以使用 git tag -d <tagname> 命令。例如

请注意,这不会从任何远程服务器中删除标签。删除远程服务器上的标签有两种常见的变体。

第一种变体是 git push <remote> :refs/tags/<tagname>。

解释上述命令的方式是将冒号前的空值推送到远程标签名称,从而有效地删除它。

第二种(更直观的)删除远程标签的方法是使用

$ git push origin --delete <tagname>

检出标签

如果想查看标签对应的那个软件版本,可以通过 git checkout 来检出该标签,请留意这会将仓库置于 "detached HEAD" 状态,这会带来一些不良的副作用。

在 "detached HEAD" 状态下,如果进行更改然后创建一个提交,标签将保持不变,但新的提交将不属于任何分支,并且无法送达(除了通过确切的commit 哈希)。因此,如果需要进行更改,比如说要修复一个旧版本的 bug,通常会想要创建一个分支。

如果这样做并进行了提交,v2.0 分支将会与v2.0 标签略有不同,因为它将随着新更改向前移动,所以务必小心。

这篇关于git基础-tagging的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

git stash命令基本用法详解

《gitstash命令基本用法详解》gitstash是Git中一个非常有用的命令,它可以临时保存当前工作区的修改,让你可以切换到其他分支或者处理其他任务,而不需要提交这些还未完成的修改,这篇文章主要... 目录一、基本用法1. 保存当前修改(包括暂存区和工作区的内容)2. 查看保存了哪些 stash3. 恢

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

IDEA实现回退提交的git代码(四种常见场景)

《IDEA实现回退提交的git代码(四种常见场景)》:本文主要介绍IDEA实现回退提交的git代码(四种常见场景),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.已提交commit,还未push到远端(Undo Commit)2.已提交commit并push到

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

Spring Boot集成Logback终极指南之从基础到高级配置实战指南

《SpringBoot集成Logback终极指南之从基础到高级配置实战指南》Logback是一个可靠、通用且快速的Java日志框架,作为Log4j的继承者,由Log4j创始人设计,:本文主要介绍... 目录一、Logback简介与Spring Boot集成基础1.1 Logback是什么?1.2 Sprin

MySQL复合查询从基础到多表关联与高级技巧全解析

《MySQL复合查询从基础到多表关联与高级技巧全解析》本文主要讲解了在MySQL中的复合查询,下面是关于本文章所需要数据的建表语句,感兴趣的朋友跟随小编一起看看吧... 目录前言:1.基本查询回顾:1.1.查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J1.2.按照部门