手机版

Git标签管理

时间:2021-09-05 来源:互联网 编辑:宝哥软件园 浏览:

前面的话

当发布一个版本时,我们通常会先在版本库中放一个标签。这样,标签时的版本被唯一地确定。以后每当你拿一个贴了标签的版本,你都会拿出那个贴了标签的时刻的版本历史。因此,标签也是版本库的快照,本质上是一个指向提交的指针。因此,创建和删除标签是即时完成的。简而言之,tag是一个易于记忆的有意义的名称,它与commit绑定在一起。本文将详细介绍Git标签管理

创建标签

Git中的标注非常简单。首先,切换到需要标记的分支

然后,您可以通过键入命令git标签名称来键入新标签

您可以使用git标记命令查看所有标记

默认标签在最近一次提交时。有时候,我忘了贴标签怎么办?方法是找到历史提交的提交id,然后键入它

例如,要标记这个create b.txt提交,其对应的提交id是7ec9296,并键入以下命令:

然后使用git tag命令查看标签。请注意,标签不是按时间顺序列出的,而是按字母顺序排序的

您可以使用git显示标记名来查看标记信息

笔记标签

实际上,Git使用两种类型的标签:轻量级的和带注释的。上面的描述是轻量级标签,就像一个不会改变的分支。事实上,它是对特定提交对象的引用。注释标签实际上是存储在仓库中的独立对象,它有自己的校验和信息,包括标签名称、电子邮件地址和日期以及标签描述。标签本身也可以由GNU隐私保护(GPG)签署或验证。一般建议使用带备注的标签保存相关信息;当然,如果只是临时添加标签,或者不需要添加额外的信息,使用轻量级标签也没问题

创建带有注释类型的标签非常简单。您可以用-a(带注释的首字母,中文意思是注释)指定标签名称,而-m选项指定相应的标签描述,Git会将其一起保存在标签对象中。如果没有给出这个选项,Git会启动文本编辑软件,让你输入标签描述

$ git标签-a v1.4 -m '我的版本1.4 '

我们可以看到在提交的对象信息上,列出了这个标签的提交者和提交时间,以及对应的标签描述

在标签上签名

如果你有自己的私钥,也可以用GPG签标签,只需要把前面的-a改成-s(取signed的第一个字母,意思是中文签名)

$ git tag -s v0.2 -m '已发布签名版本0.2 '

签名是由PGP签名的,所以必须先安装gpg(GnuPG)。如果找不到gpg或没有gpg密钥对,将会报告错误

现在再次运行git show,您会看到相应的GPG签名也附加在上面

$ git show v 0.2 tag v 0.2 tag : Michael lio[email protected]date : Mon 8月26日07:28:33 2013 0800signed版本0.2已发布-BEGIN PGP SIGNATURE-version : GnuPG v 1 . 4 . 12(Darwin)iqecbaababagabqjsgpmhaaojebuxhydbpt4 qqiakehf3po.-END PGP SIGNATURE-commit FEC 145 accd 63 dc9ed 95 a2 f 557 ea 0658 a2 a 6537 fauthor : Michael Liao[电子邮件受保护]日期: thu aug 22 10:37336030 2013 0800分支测试PGP签名的标签不能伪造,因为它可以验证PGP签名。

您可以使用git tag-v[标记名](取verify的第一个字母,中文意思是verify)来验证签名的标记。该命令将调用GPG来验证签名,因此您需要有签名者的公钥并将其存储在密钥环中来验证它

$ git tag-v v 1 . 4 . 2 . 1 object 883653 babd 8 e7ea 23 E6 a5c 392 bb 739348 B1 EB 61 type commit ag v 1 . 4 . 2 . 1 tager Junio C Hamano[email protected]1158138501-0700 git 1 . 4 . 2 . 1自1 . 2以来的修复,包括git-mv和git-http及其替代版本。gpg 3360签名于2023年9月13日星期三制作

Gpg:签名被湿sep13 02:08:25 2006 PDT使用DSA密钥id f3119b9apg:无法检查签名:未找到公钥错误:无法验证标记“v1.4.2.1”

如果标签错误,也可以删除

$ git标记名-d

因为创建的标签只存储在本地,所以不会自动推送到远程。因此,错误的标签可以在本地安全删除。

默认情况下,git push不会将标签发送到远程服务器,只有通过显式命令才能将标签推送到远程仓库

$ git推原点标记名

或者,一次性将所有尚未推送至远程位置的本地标签推送出去

$ git推送原点标签

如果标签已经推送到远程,删除远程标签有点麻烦,先在本地删除

然后,远程删除。delete命令也是push,但是格式如下

最后,如何查看发送到远程的标签?

单击Github项目中的发布

您可以看到远程标签的信息

以上就是本文的全部内容。希望本文的内容能给大家的学习或工作带来一些帮助,也希望多多支持我们!

版权声明:Git标签管理是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。