看看Git中的标签带有哪些修订版

fak*_*eft 14 git version-control dvcs git-tag

初学者Git问题:

Mercurial世界中,hg tags给我一个标签列表和相应的修订版,而git tag只列出标签名称.如何查看匹配的转数/哈希是什么?

sim*_*rsh 21

有关与该标记关联的完整信息,请使用命令

git show v1.5
Run Code Online (Sandbox Code Playgroud)

或者您可以通过命令查看轻量级信息,跳过详细信息

git show v1.5 -lw
Run Code Online (Sandbox Code Playgroud)


Jak*_*ski 8

如果有问题的标签是所谓的'重量级标签',或带注释的标签,利用标签对象,例如PGP签名版本(据我所知,Mercurial没有等价物)然后

$ git show v1.5.0
Run Code Online (Sandbox Code Playgroud)

将显示标记信息(标记器,标记日期,标记消息 - 通常包含PGP签名块),以及有关标记提交的信息.如果您愿意,可以使用低级别的等价物:

$ git cat-file tag v1.5.0
Run Code Online (Sandbox Code Playgroud)

(如果v1.5.0不是标签对象,这将失败).

如果有问题的标签被称为"轻量级标签",它只是refs/tags/*名称空间中的引用.您可以使用"git show lightweight-tag"来显示给定标记指向的提交.

您可以在期望commit-ish或tree-ish的每个位置使用标记名称.


如果你想要的不仅仅是"git tag"/"git tag -l",你可以使用以下管道(低级)命令之一git show-refs:

$ git show-ref --tags
$ git show-ref --dereference --tags
Run Code Online (Sandbox Code Playgroud)

或者git for-each-ref,提供带有--format=<format>选项的更多信息,并使用--sort=<key>选项排序:

$ git for-each-ref refs/tags/
Run Code Online (Sandbox Code Playgroud)

你也可以(ab)使用git ls-remote它,导致输出类似于" git show-ref --dereference --tags":

$ git ls-remote --tags .
Run Code Online (Sandbox Code Playgroud)

  • ...如果您不知道/关心标签是标签对象还是轻量级标签,但想要查看提交,您可以使用`git show v1.5.0 ^ {commit}`或`git rev-解析v1.5.0 ^ {commit}`以获取可检索提交ID的脚本方式. (3认同)
  • 或者只是`v1.5.0 ^ {}`(假设标签指向提交) (2认同)