在我的存储库中,我使用以下命令创建了标签。
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 标签进行排序”,适用于 Git2.0+)
git tag --sort=<type>
按特定顺序排序。 支持的类型是: ” refname” (字典顺序), “ version:refname”或“ v:refname”(标签名称被视为版本)。 在前面加上“-”以反转排序顺序。
按特定顺序排序。
支持的类型是:
refname
version:refname
v:refname
在前面加上“-”以反转排序顺序。
这列出了两者:
注意:关于标记的 git ready 文章不赞成轻量级标记。
没有参数, git tag 会创建一个“轻量级”标签,它基本上是一个永远不会移动的分支。 尽管如此,轻量级标签仍然很有用,可能用于标记已知的好(或坏)版本,或者您将来可能需要使用的一堆提交。 不过, 您可能不想推送这些类型的标签 。 通常,您至少希望通过 -a 选项来创建未签名的标签,或者通过 -s 或 -u 选项使用您的 GPG 密钥对标签进行签名。
没有参数, git tag 会创建一个“轻量级”标签,它基本上是一个永远不会移动的分支。 尽管如此,轻量级标签仍然很有用,可能用于标记已知的好(或坏)版本,或者您将来可能需要使用的一堆提交。 不过, 您可能不想推送这些类型的标签 。
通常,您至少希望通过 -a 选项来创建未签名的标签,或者通过 -s 或 -u 选项使用您的 GPG 密钥对标签进行签名。
话虽如此, Charles Bailey 指出 ‘ git tag -m "..."‘ 实际上暗示了一个正确的(无符号注释的)标签(选项 ‘ -a‘),而不是一个轻量级的标签。所以你对你的初始命令很好。
git tag -m "..."
-a
这不同于:
git show-ref --tags -d
其中列出了带有提交的标签(请参阅“ Git Tag list, display commit sha1 hashes ”)。 请注意-d,为了取消引用带注释的标记对象(它们有自己的提交 SHA1)并显示实际的标记提交。
-d
同样,git show --name-only <aTag>将列出标签和相关的提交。
git show --name-only <aTag>