Git 标签(tag)简介与使用
Git 可以对某一时间点上的版本打上标签。在做版本发布的时候经常这么做。Git 使用的标签有两种类型: 轻量级的(lightweight) 和 含附注的(annotated)。
- 轻量级标签:就像是个不会变化的分支,实际上它就是个指向特定提交对象的引用。
- 含附注标签:实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,电子邮件地址和日期,以及标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证。
总结的说就是轻量级标签是一个引用,附注标签是一个独立的对象。一般建议使用附注标签,以保留相关详细信息。
常用命令:
列出所有标签:
$ git tag
用通配符列出标签(如列出所有 v1.0 版本的标签):
$ git tag -l "v1.0*"
列出远程仓库中所有的标签:
$ git ls-remote --tags
新建附注标签:
$ git tag -a v1.4 -m 'my version 1.4'
默认在当前 HEAD 上打标签,如果想对指定的提交(commit)打标签:
$ git tag -a v1.4 -m 'my version 1.4' \<commit>
新建轻量级标签(无需指定任何额外参数):
$ git tag v1.4-lw
查看标签对应的信息:
$ git show v1.4
提交标签到远程仓库:
$ git push origin v1.4
一次提交本地的所有标签:
$ git push origin --tags
获取远程标签:
$ git fetch origin tag <tagname>
删除本地的标签:
$ git tag -d v0.9
删除远程标签 有三种方式:
1. 使用参数 `--delete`:
$ git push origin --delete tag <tagname>
2. 相当于推送一个空分支到远程分支:
$ git push origin :<tagname>
3. 先删除本地 tag,在推送一个空的 tag 到远程仓库:
$ git tag -d <tagname>
$ git push origin :refs/tags/<tagname>
参考资料: