在我的存储库中,我已使用以下命令创建了标签。
git tag v1.0.0 -m 'finally a stable release'
git tag v2.0.0 -m 'oops, there was still a major bug!'
如何列出存储库中的所有标签?
git tag
应该足够了。请参见git tag
手册页
您还有:
git tag -l <pattern>
列出名称与给定模式匹配的标签(如果没有给出模式,则列出所有标签)。
键入不带参数的 “git tag”,还会列出所有标签。
最近(对于 Git 2.0 及更高版本,“如何对 git 标签进行排序?”)
git tag --sort=<type>
按特定顺序排序。
支持的类型是:
- “
refname
”(字典顺序),- “
version:refname
” 或 “v:refname
”(标记名称被视为版本)。在 “-” 前添加反向排序顺序。
列出了两个:
注意:有关标记的 git ready 文章不赞成轻量级标记。
没有参数,git 标签会创建一个 “轻量级” 标签,该标签基本上是一个永远不会移动的分支。
轻量级标签仍然很有用,可能用于标记已知的好(或坏)版本,或者将来可能需要使用的一系列提交。
不过,您可能不想推送这些标签。通常,您至少希望通过 - a 选项来创建未签名的标签,或者通过 - s 或 - u 选项使用 GPG 密钥对标签进行签名。
话虽如此,查尔斯 · 贝利(Charles Bailey)指出,一个git tag -m "..."
实际上意味着一个正确的(未签名的带注释的)标签(选项-a
),而不是一个轻量级的标签。因此,您可以很好地使用初始命令。
这不同于:
git show-ref --tags -d
其中列出了带有提交的标签(请参阅 “ Git 标签列表,显示提交 sha1 哈希值”)。
请注意-d
以便取消引用带注释的标记对象(它们具有自己的提交 SHA1)并显示实际的带标记的提交。
同样, git show --name-only <aTag>
将列出标签和相关的提交。
要列出我更喜欢的标签:
git tag -n
-n
标志与标签一起显示注释消息的第一行,如果未注释标签,则显示第一提交消息行。
您还可以执行git tag -n5
以显示注释的前 5 行。
git show-ref
也是非常有用的,因此您可以直接将标签与对应的提交关联:
$ git tag
osgeolive-6.5
v8.0
...
$ git show-ref --tags
e7e66977c1f34be5627a268adb4b9b3d59700e40 refs/tags/osgeolive-6.5
8f27e65bddd7d4b8515ce620fb485fdd78fcdf89 refs/tags/v8.0
...