1.什么是tag

1.1 tag的简单理解

1
2
3
4
tag 中文我们可以称它为 标签。

简单的理解,tag 就是 对某次 commit 的一个标识,相当于起了一个别名。
例如,在项目发布某个版本的时候,针对最后一次commit 起一个 v1.0.100 这样的标签来标识里程碑的意义。

1.2 tag的类型

1
2
3
4
5
6
有两种类型的标签 : 轻量标签(lightweight)、附注标签(annotated)

【轻量标签 】: 只是某个commit 的引用,可以理解为是一个commit的别名;

【附注标签】 :是存储在git仓库中的一个完整对象,包含打标签者的名字、电子邮件地址、日期时间 以及其他的标签信息。
它是可以被校验的,可以使用 GNU Privacy Guard (GPG) 签名并验证。

2.1 查看标签

2.1.1 查看标签列表

1
2
3
$ git tag
or
$ git tag -l [标签名称筛选字符串*] 或者 git tag --list [标签名称筛选字符串*]

说明 :
git tag : 直接列出所有的标签
git tag -l xxxx : 可以根据 xxxx 进行标签的筛选

2.1.2 查看标签的提交信息

1
$ git show 标签名

git show 标签名 : 查看标签的信息,(轻量标签 和 附注标签 的信息是不一样的)

2.2 创建标签

2.2.1 创建轻量标签

1
2
3
$ git tag 标签名
or
$ git tag 标签名 提交版本

说明 :
git tag 标签名 : 直接给当前的提交版本创建一个【轻量标签】
git tag 标签名 提交版本号 :给指定的提交版本创建一个 【轻量标签】

2.2.2 创建附注标签

1
2
3
$ git tag -a 标签名称 -m 附注信息
or
$ git tag -a 标签名称 提交版本号 -m 附注信息

说明:
-a : 理解为 annotated 的首字符,表示 附注标签
-m : 指定附注信息
git tag -a 标签名称 -m 附注信息 :直接给当前的提交版本创建一个 【附注标签】
git tag -a 标签名称 提交版本号 -m 附注信息 :给指定的提交版本创建一个【附注标签】

2.3 删除标签

1
$ git tag -d 标签名称

说明 :
git tag -d 标签名称 : 删除指定名称的标签

3.1 推送到远程仓库

默认情况下,git push 命令并不会把标签推送到远程仓库中。
因此,我们必须 手动地将 本地的标签 推送到远程仓库中。

1
2
3
$ git push origin 标签名称
or
$ git push origin --tags

说明 :
git push origin 标签名称 : 将指定的标签上传到远程仓库
git push origin --tags : 将所有不在远程仓库中的标签上传到远程仓库

3.2 删除远程仓库的标签

删除远程仓库上地标签同样也需要手动执行。

1
2
3
$ git push origin  :regs/tags/标签名称
or
$ git push origin --delete 标签名称

说明 :
上面两个命令都是删除远程仓库中的 指定标签

4.检出标签

检出标签的理解 : 我想在这个标签的基础上进行其他的开发或操作。
检出标签的操作实质 : 就是以标签指定的版本为基础版本,新建一个分支,继续其他的操作。
因此 ,就是 新建分支的操作了。

1
$ git checkout -b 分支名称 标签名称