1.什么是tag
1.1 tag的简单理解
简单的理解,tag 就是 对某次 commit 的一个标识,相当于起了一个别名。
例如,在项目发布某个版本的时候,针对最后一次commit 起一个 v1.0.100 这样的标签来标识里程碑的意义。
1.2 tag的类型
有两种类型的标签 : 轻量标签(lightweight)、附注标签(annotated)
【轻量标签 】: 只是某个commit 的引用,可以理解为是一个commit的别名;
【附注标签】 :是存储在git仓库中的一个完整对象,包含打标签者的名字、电子邮件地址、日期时间 以及其他的标签信息。
它是可以被校验的,可以使用 GNU Privacy Guard (GPG) 签名并验证。
2.本地tag的操作
2.1 查看标签
2.1.1 查看标签列表
$ git tag
or
$ git tag -l [标签名称筛选字符串*] 或者 git tag --list [标签名称筛选字符串*]
说明 :
git tag : 直接列出所有的标签
git tag -l xxxx : 可以根据 xxxx 进行标签的筛选
2.1.2 查看标签的提交信息
$ git show 标签名
git show 标签名 : 查看标签的信息,(轻量标签 和 附注标签 的信息是不一样的)
2.1.3 在提交历史中查看标签
2.2 创建标签
2.2.1 创建轻量标签
$ git tag 标签名
or
$ git tag 标签名 提交版本
说明 :
git tag 标签名 : 直接给当前的提交版本创建一个【轻量标签】
git tag 标签名 提交版本号 :给指定的提交版本创建一个 【轻量标签】
2.2.2 创建附注标签
$ git tag -a 标签名称 -m 附注信息
or
$ git tag -a 标签名称 提交版本号 -m 附注信息
说明:
-a : 理解为 annotated 的首字符,表示 附注标签
-m : 指定附注信息
git tag -a 标签名称 -m 附注信息 :直接给当前的提交版本创建一个 【附注标签】
git tag -a 标签名称 提交版本号 -m 附注信息 :给指定的提交版本创建一个【附注标签】
2.3 删除标签
$ git tag -d 标签名称
说明 :
git tag -d 标签名称 : 删除指定名称的标签
3.远程仓库tag的操作
3.1 推送到远程仓库
默认情况下,git push 命令并不会把标签推送到远程仓库中。
因此,我们必须 手动地将 本地的标签 推送到远程仓库中
$ git push origin 标签名称
or
$ git push origin --tags
说明 :
git push origin 标签名称 : 将指定的标签上传到远程仓库
git push origin --tags : 将所有不在远程仓库中的标签上传到远程仓库
3.1.1 推送单个标签
3.1.2 推送所有标签
3.2 删除远程仓库的标签
$ git push origin :regs/tags/标签名称
or
$ git push origin --delete 标签名称
4.检出标签
检出标签的理解 : 我想在这个标签的基础上进行其他的开发或操作。
检出标签的操作实质 : 就是以标签指定的版本为基础版本,新建一个分支,继续其他的操作。
因此 ,就是 新建分支的操作了。
$ git checkout -b 分支名称 标签名称