Git可以给历史中的某一个提交打上标签(tag),以示重要。标签,是一个指向某个版本的指针,类似于分支。分支是最新版本的别名,标签是某个版本的别名。
使用标签,是因为版本号(哈希值)的字符串不友好,不方便记忆。标签语义化,对开发人员友好,方便提取附注的开发信息。
标签的命名遵循一套语义化版本控制规范(Semantic Versioning)。
版本格式:主版本号.次版本号.修订号,先行版本号及版本编译信息可以加到主版本号.次版本号.修订号的后面,作为延伸。版本号递增规则如下:
输入git tag
,以字母顺序列出标签;它们出现的顺序并不重要。
$ git tag
v0.1
v1.3
可以使用特定模式查找标签:
$ git tag -l 'v1.8.5*' # 模糊匹配包含v1.8.5字符的标签
v1.8.5
v1.8.5-rc0
v1.8.5-rc1
v1.8.5-rc2
v1.8.5.1
v1.8.5.2
v1.8.5.3
Git的标签类型主要有:
附注标签(annotated)
附注标签是存储在Git数据库中的一个完整对象。它们可以被校验;包含打标签者的名字、电子邮件地址、日期时间、标签信息;并且可以使用GNU Privacy Guard(GPG)签名与验证。
建议创建附注标签,这样就可以拥有以上所有信息;若只是想使用一个临时标签,或者因为某些原因不想要保存那些信息,使用轻量标签。
使用-a
(带备注)或-s
(带PGP签名)选项运行git tag
命令创建附注标签:
git tag -a 标签名 -m "标签备注"
使用git show 标签名
,查看标签信息与对应的提交信息:
/111 (master)
$ git show v1.4
tag v1.4
Tagger: xxx <xxx@xxx.com>
Date: Fri Feb 21 15:22:48 2020 +0800
my version 1.4
commit e7ef745a7aa99feac35084858cb688fa37ce6975 (HEAD -> master, tag: v1.4)
Author: xxx <xxx@xxx.com>
Date: Fri Feb 21 10:52:37 2020 +0800
123
diff --git a/new.txt b/new.txt
index 592d2d3..9ade9da 100644
--- a/new.txt
+++ b/new.txt
@@ -3,3 +3,4 @@
333
aaa
bbb
+123
轻量标签(lightweight)
轻量标签很像一个只读的分支,它只是一个特定提交的引用。
轻量标签,本质上是将提交校验和存储到一个文件中,没有保存任何其他信息。
创建轻量标签,不需要使用-a
、-s
或-m
选项,只需要提供标签名字:
git tag 标签名
使用git show 标签名
,只能查看提交信息。
后期打标签(对之前的指定提交打标签):
git tag -a 标签名 -m "标签备注" commit_id # 缺省commit_id时,默认对最新版本打标签
默认情况下,git push
命令不会传送标签到远程仓库服务器上。在创建完标签后,必须显式地推送标签到共享服务器上,这个过程就像共享远程分支一样。
git push origin 标签名
git push origin --tags
git tag -d 标签名
命令git tag -d 标签名
命令删除本地仓库上的标签git push <remote> :refs/tags/<tagname>
更新远程仓库,将空白标签推送到远程仓库,等同于删除远程标签若想查看某个标签所指向的文件版本,可以使用git checkout 标签名
命令,将进入“detacthed HEAD”状态。
感谢您的赞赏支持: