以字母顺序列出标签:
$ git tag
Git 使用两种主要类型的标签:轻量标签(lightweight)与附注标签(annotated)。
轻量标签
轻量标签类似一个不会改变的分支 —— 它只是一个特定提交的引用。轻量标签本质上是将提交校验和存储到一个文件中 —— 没有保存任何其他信息。
创建轻量标签,只需要提供标签名字即可:
$ git tag [tagname]
附注标签
附注标签是存储在 Git 数据库中的一个完整对象。它们是可以被校验的;其中包含打标签者的名字、电子邮件地址、日期时间;还有一个标签信息;并且可以使用 GNU Privacy Guard (GPG)签名与验证。
创建附注标签,需要在运行 git tag
命令时指定 -a
选项:
$ git tag -a [tagname] -m 'my version 1.4'
-m
选项指定了一条将会存储在标签中的信息。如果没有为附注标签指定一条信息,Git 会运行编辑器要求你输入信息。
指定提交的校验和(或部分校验和),可以对特定的提交打标签:
$ git tag [tagname] [commitId]
默认情况下,git push
命令并不会传送标签到远程仓库服务器上。在创建完标签后你必须显式地推送标签到共享服务器上。这个过程就像共享远程分支一样。
要推送某个标签到远程仓库上,使用命令:
$ git push origin [tagname]
要一次性推送所有不在远程仓库上的标签,可以使用带有 --tags
选项的 git push
命令:
$ git push origin --tags
删除本地标签:
$ git tag -d [tagname]
如果标签已经推送到了远程,还需要删除远程的标签:
$ git push origin :refs/tags/[tagname]
在 Git 中你并不能真的检出一个标签,因为它们并不能像分支一样来回移动。 如果你想要工作目录与仓库中特定的标签版本完全一样,可以使用 git checkout -b [branchname] [tagname]
在特定的标签上创建一个新分支。