Git 使用的标签有两种类型:轻量级的(lightweight)和含附注的(annotated)。轻量级标签就像是个不会变化的分支,实际上它就是个指向特定提交对象的引用。而含附注标签,实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,电子邮件地址和日期,以及标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证。一般我们都建议使用含附注型的标签,以便保留相关信息;当然,如果只是临时性加注标签,或者不需要旁注额外信息,用轻量级标签也没问题。
含附注的标签
创建一个含附注类型的标签非常简单,用 -a
(译注:取 annotated
的首字母)指定标签名字即可:
$ git tag -a v1.4 -m 'my version 1.4'
$ git show v1.4
后期加注标签
$ git log --pretty=oneline
$ git tag -a v1.2 9fceb02
版本
版本号必须符合semver,其的形式为{major}.{minor}.{patch}[-{pre-release-type}.{pre-release}]
其中major
、minor
、patch
和{pre-release}`必须为十进制数字,且随版本发布递增。
{pre-release-type}
必须选择以下关键词之一:
alpha
表示内部测试版本,不建议任何非参与开发人员所在团队使用,在alpha
版本期间会不断增加新的功能并修复已有BUGbeta
表示公开测试版本,不建议稳定项目使用,在beta
版本期间会酌情增加新功能,修复已知BUGrc
表示发布候选版本,推荐各项目使用,在rc
期间不得增加任何新功能,仅修复BUG。如果rc
版本未发现任何BUG,则此版本直接转为正式发布版
create a new branch from a tag
git checkout -b newbranch v1.0
git checkout tags/<tag_name>
==================================================
http://blog.csdn.net/shines/article/details/8558293
事实上Git 的推送和删除远程标签命令是相同的,删除操作实际上就是推送空的源标签refs:
git push origin 标签名
相当于
git push origin refs/tags/源标签名:refs/tags/目的标签名
git push 文档中有解释:
tag <<tag>> means the same as refs/tags/<tag>:refs/tags/<tag>. Pushing an empty <src> allows you to delete the <dst> ref from the remote repository. |
推送标签:
- git push origin 标签名
删除本地标签:
- git tag -d 标签名
删除远程标签:
- git push origin :refs/tags/标签名
- git push origin :refs/tags/protobuf-2.5.0rc1
- git push origin :标签名
都行
其他本地操作:
- #打标签
- git tag -a v1.1.4 -m "tagging version 1.1.4"
- #删除本地仓库标签
- git tag -d v1.1.4
- #列出标签
- git tag
参考文档:
http://nathanhoad.net/how-to-delete-a-remote-git-tag
http://linux.die.net/man/1/git-push