如何列出所有Git标签?

时间:2009-06-30 15:52:36

标签: git git-tag

在我的存储库中,我使用以下命令创建了标记。

git tag v1.0.0 -m 'finally a stable release'
git tag v2.0.0 -m 'oops, there was still a major bug!'

如何列出存储库中的所有标记?

10 个答案:

答案 0 :(得分:754)

git tag

应该足够了。见git tag man page


您还有:

git tag -l <pattern>
  

列出名称与给定模式匹配的标签(如果没有给出模式,则列出所有标签)   输入不带参数的“git tag”,也会列出所有标签。


最近(“How to sort git tags?”,对于Git 2.0 +)

git tag --sort=<type>
  

按特定顺序排序。

     

支持的类型是:

     
      
  • refname”(字典顺序),
  •   
  • version:refname”或“v:refname”(标记名称被视为版本)。
  •   
     

预设“ - ”以反转排序顺序。


列出了两个:

  • annotated tags :存储在Git数据库中的完整对象。他们是校验和的;包含标记器名称,电子邮件和日期;有标记消息;并且可以使用GNU Privacy Guard(GPG)进行签名和验证。
  • lightweight tags :指向现有提交的简单指针

注意:git ready article on tagging拒登了轻量级代码。

  

没有参数,git标签会创建一个“轻量级”标签,它基本上是一个永不移动的分支   轻量级标签仍然有用,可能用于标记已知的好(或坏)版本,或者将来可能需要使用的一堆提交。
  然而,你可能不想推出这类标签

     

通常,您希望至少传递-a选项以创建无符号标记,或者通过-s或-u选项使用GPG密钥对标记进行签名。


话虽如此, Charles Bailey 指出“git tag -m "..."”实际上暗示了一个正确的(无符号注释)标记(选项“-a”),而不是轻量级的。所以你对初始命令很满意。


这与以下不同:

git show-ref --tags -d

其中列出了包含其提交的标记(请参阅“Git Tag list, display commit sha1 hashes”) 请注意-d以取消引用带注释的标记对象(具有自己的提交SHA1)并显示实际标记的提交。

同样,git show --name-only <aTag>将列出标记和关联的提交。

答案 1 :(得分:163)

列出我更喜欢的标签:

git tag -n

-n标志显示注释消息的第一行以及标签,如果标签未注释,则显示第一条提交消息行。

您也可以git tag -n5显示注释的前5行。

答案 2 :(得分:39)

同样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
...

答案 3 :(得分:20)

以下是您找到远程标签的方法:

git ls-remote --tags origin

答案 4 :(得分:10)

尝试制作git tag如果不尝试git fetch然后git tag就足够了。

答案 5 :(得分:8)

要查看有时使用的最新可用标记的详细信息:

git show `git describe` --pretty=fuller

答案 6 :(得分:3)

如果要在本地检查标记名称,则必须转到已创建标记的路径(本地路径)。 意味着放置物体的地方。 然后输入命令:

git show --name-only <tagname>

它将显示该标记名称下的所有对象。 我在Teradata工作,对象意味着视图,表格等

答案 7 :(得分:3)

列出Git中可用的标签很简单。只需键入git tag(带有可选的-l--list)。

$ git tag
v5.5
v6.5

您还可以搜索与特定模式匹配的标签。

$ git tag -l "v1.8.5*"
v1.8.5
v1.8.5-rc0
v1.8.5-rc1
v1.8.5-rc2

在git存储库上获取最新标签

该命令查找一次提交可访问的最新标记。如果标签指向提交,则仅显示标签。否则,它会在标记名称后加上标记对象后附加的提交次数以及最近提交的缩写对象名称。

git describe

--abbrev设置为0的情况下,该命令可用于查找最接近的tagname,而没有任何后缀:

git describe --abbrev=0

其他示例:

git describe --abbrev=0 --tags # gets tag from current branch
git describe --tags `git rev-list --tags --max-count=1` // gets tags across all branches, not just the current branch

如何修剪远程不存在的本地git标签

简单起见,如果您尝试执行类似git fetch -p -t的操作,则从git版本1.9.4开始将不起作用。

但是,有一个简单的解决方法仍可以在最新版本中使用:

git tag -l | xargs git tag -d  // remove all local tags
git fetch -t                   // fetch remote tags

答案 8 :(得分:1)

您可以列出所有现有代码git tag,也可以使用git tag -l 'v1.1.*'过滤列表,其中*充当通配符。它将返回标有v1.1的标记列表。

您会注意到,当您致电git tag时,您无法看到注释的内容。要预览它们,您必须在命令中添加-ngit tag -n2

$ git tag -l -n2 v1.0发行版1.0 v1.1发布版本1.1

该命令列出所有现有标签,其标签消息最多3行。默认情况下,-n仅显示第一行。有关详细信息,请务必同时查看this tag related article

答案 9 :(得分:0)

对于GUI而言,我刚刚发现'gitk'支持命名视图。 该视图具有几个用于选择提交的选项。一个方便的是一个盒子 选择“所有标签”。 对我来说,查看标签似乎很有用。