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

相关文章

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus