本节我们一起来学习如何列出所有可用的标签,如何新建标签,以及各种不同类型标签之间的差别。
列显已有的标签
直接运行
git tag
即可:可以用特定的搜索模式列出符合条件的标签。在 Git 自身项目仓库中,有着超过 240 个标签,如果你只对 1.4.2 系列的版本感兴趣,可以运行下面的命令:
$ git tag -l ‘v1.4.2.*‘ v1.4.2.1 v1.4.2.2 v1.4.2.3 v1.4.2.4
新建标签
轻量级的(lightweight) 含附注的(annotated)(建议)用
-a
(译注:取annotated
的首字母)指定标签名字即可:$ git tag -a v1.4 -m ‘my version 1.4‘ $ git tag v0.1 v1.3 v1.4
而-m
选项则指定了对应的标签说明,Git 会将此说明一同保存在标签对象中。如果没有给出该选项,Git 会启动文本编辑软件供你输入标签说明。
可以使用git show
命令查看相应标签的版本信息,并连同显示打标签时的提交对象。$ git show v1.4
如果你有自己的私钥,还可以用 GPG 来签署标签,只需要把之前的
-a
改为-s
(译注: 取signed
的首字母)即可:$ git tag -s v1.5 -m ‘my signed 1.5 tag‘ You need a passphrase to unlock the secret key for user: "Scott Chacon <schacon@gee-mail.com>" 1024-bit DSA key, ID F721C45A, created 2009-02-09
轻量级标签实际上就是一个保存着对应提交对象的校验和信息的文件。要创建这样的标签,一个
-a
,-s
或-m
选项都不用,直接给出标签名字即可:
- 验证标签
- 可以使用
git tag -v [tag-name]
(译注:取verify
的首字母)的方式验证已经签署的标签。此命令会调用 GPG 来验证签名,所以你需要有签署者的公钥,存放在 keyring 中,才能验证你甚至可以在后期对早先的某次提交加注标签。比如在下面展示的提交历史中:
$ git log --pretty=oneline 15027957951b64cf874c3557a0f3547bd83b3ff6 Merge branch ‘experiment‘ a6b4c97498bd301d84096da251c98a07c7723e65 beginning write support 0d52aaab4479697da7686c15f77a3d64d9165190 one more thing 6d52a271eda8725415634dd79daabbc4d9b6008e Merge branch ‘experiment‘ 0b7434d86859cc7b8c3d5e1dddfed66ff742fcbc added a commit function 4682c3261057305bdd616e23b64b0857d832627b added a todo file 166ae0c4d3f420721acbb115cc33848dfcc2121a started write support 9fceb02d0ae598e95dc970b74767f19372d61af8 updated rakefile 964f16d36dfccde844893cac5b347e7b3d44abbc commit the todo 8a5cbc430f1a9c3d00faaeffd07798508422908a updated readme
我们忘了在提交 “updated rakefile” 后为此项目打上版本号 v1.2,没关系,现在也能做。只要在打标签的时候跟上对应提交对象的校验和(或前几位字符)即可:
$ git tag -a v1.2 9fceb02
可以看到我们已经补上了标签:
默认情况下,
git push
并不会把标签传送到远端服务器上,只有通过显式命令才能分享标签到远端仓库。其命令格式如同推送分支,运行git push origin [tagname]
即可:$ git push origin v1.5
如果要一次推送所有本地新增的标签上去,可以使用
--tags
选项:$ git push origin --tags
Git帮助文档阅读笔记----第二章-第五节---打标签,布布扣,bubuko.com
原文:http://www.cnblogs.com/qts334/p/3832849.html