一 『现学现忘』Git基础 — 36、标签tag

目录

  • 1、标签介绍
  • 2、列出标签
  • 3、创建标签
    • (1)标签的分类
    • (2)附注标签
    • (3)轻量标签
  • 4、后期打标签
1、标签介绍软件的某个发行版本所对应的,其实就是软件开发过程中,某一个阶段的最后一次git commit提交 。我们知道每一个提交操作,对应的都会生成一个commit-id,而标签就是与某一个commit-id绑定的名称 。一个标签一旦与某一个commit-id绑定,那么该标签就不能修改绑定到其它commit-id了,除非将该标签删除后才可以与其commit-id绑定 。
标签对象(tag object) 非常类似于一个提交对象,它包含一个标签创建者信息、一个日期、一段注释信息,以及一个指针 。主要的区别在于,标签对象通常指向一个提交对象,而不是一个树对象 。它像是一个永不移动的分支引用,永远指向同一个提交对象,只不过给这个提交对象加上一个更友好的名字罢了 。
像其他版本控制系统(VCS)一样,Git 可以给仓库历史中的某一个提交打上标签,以示重要 。比较有代表性的是,人们会使用这个功能来标记发布结点( v1.0v2.0 等等),我们也可以称标签tag为里程碑 。
2、列出标签在 Git 中列出已有的标签非常简单,只需要输入 git tag (可带上可选的 -l 选项 --list):
$ git tagv1.0v2.0这个命令以字母顺序列出标签,但是它们显示的顺序并不重要 。
查看具体标签的详情,使用命令:git show 标名称
你也可以按照特定的模式查找标签 。例如,Git 自身的源代码仓库包含标签的数量超过 500 个 。如果只对1.8.5 系列感兴趣,可以运行:
$ git tag -l "v1.8.5*"v1.8.5v1.8.5-rc0v1.8.5-rc1v1.8.5-rc2v1.8.5.1v1.8.5.2v1.8.5.3提示:
如果你只想查看完整的标签列表,运行 git tag 命令,会默认以列表的方式展现版本库中的标签 。
如果你提供了一个匹配标签名的通配模式,如上"v1.8.5*",那么 -l--list 选项就是强制要使用的 。
3、创建标签(1)标签的分类Git 支持两种标签:轻量标签(lightweight)与附注标签(annotated) 。
轻量标签:很像一个不会改变的分支,它只是某个特定提交的引用 。
附注标签:轻量标签只有标签名称,而使用附注标签,还可以为标签添加说明 。
  • 是存储在 Git 数据库中的一个完整对象, 它们是可以被校验的,其中包含打标签者的名字、电子邮件地址、日期时间,此外还有一个标签信息,并且可以使用GNU Privacy GuardGPG)签名并验证 。提示:GPG是一种加密算法 , 现在Github支持提交使用GPG加密,从而保证提交的数据,在传输的过程中没有被篡改 。
  • 通常会建议创建附注标签,这样你可以拥有以上所有信息 。
  • 但是如果你只是想用一个临时的标签,或者因为某些原因不想要保存这些信息 , 那么也可以用轻量标签 。
  • 创建附注标签,就会产生Git中的第四种对象:tag对象 。
(2)附注标签在 Git 中创建附注标签十分简单 。
执行命令:git tag -a 标签名 -m '说明信息'
提示:这是在最新一次提交打上,打标签 。即若不指定标签绑定的commit-id,则默认为HEAD指针所指向的提交 。
-a选项意为"创建一个带注解的标签" 。(aannotated 的缩写)
不用-a 选项也可以执行的 , 但该标签不会记录这标签是什么时候打的,谁打的,也不会让你给该标签添加注解 。
我推荐一直创建带注解的标签 。
$ git tag -a v1.4 -m "my version 1.4"$ git tagv1.3v1.4-m 选项指定该标签的说明信息(必须) 。
如果你创建标签的时候 , 没有指定说明信息,Git 会启动编辑器要求你输入信息 。
通过使用 git show 命令,可以看到标签信息和与之对应的提交信息:
$ git show v1.4tag v1.4Tagger: Ben Straub <ben@straub.cc> # 打标记的人Date:Sat May 3 20:19:12 2014 -0700 # 打标机的实际my version 1.4 # 标记的说明信息# 以下是标记所对应的commit对象的信息commit ca82a6dff817ec66f44342007202690a93763949Author: Scott Chacon <schacon@gee-mail.com>Date:Mon Mar 17 21:52:11 2008 -0700changed the version number

推荐阅读