2009-06-30 91 views

回答

499
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>会列出标签和相关的提交。

+5

这也许值得补充的是-m或-F意味着-a(如果非-a,-s或-u是明确提供的,你不能在没有创建'适当'标签对象的情况下产生标签消息 – 2009-06-30 18:05:59

+1

@Charles:好点,我已经更新了我的答案 – VonC 2009-06-30 18:12:01

+0

也许`--name -only`也可以在这里提到,http://stackoverflow.com/a/43870965/54964 – 2017-05-09 13:42:59

136

要列出标签我喜欢:

git tag -n 

-n标志显示标记消息的第一行与标签一起,还是先提交信息行,如果标签没有被标注。

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

5

试着制作git tag它应该是足够的,如果不尝试制作git fetch然后git tag

32

而且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 
... 
4

要查看最新的可用标签我有时用细节:

git show `git describe` --pretty=fuller 
1

如果你想在本地检查你的标签名称,你必须去你有crea的路径特德标签(本地路径)。 意味着你已经把你的对象。 然后键入命令:

git show --name-only <tagname> 

它会显示所有在该标签名称的对象。 我在Teradata的工作,对象是指图,表等

0

这里是你如何找到远程标签:

git ls-remote --tags origin