如何在git中列出所有标签沿着完整的消息?

mzillmmw  于 2022-12-28  发布在  Git
关注(0)|答案(9)|浏览(191)

我想让git列出所有标签以及完整的注解或提交信息。

git tag -n5

这正是我想要的,除了它只会显示到标记消息的前5行。
我想我可以用一个很大的数字。我在这里能用的最大数字是多少?在每台电脑上都一样吗?

    • 更新**:我花了很多时间考虑这一点,现在我认为,如果某些消息特别长,我不一定要显示每条消息的完整内容。我实际上并没有任何特殊需求需要我查看大量消息(除了我自己写什么都长篇大论的倾向,包括标签消息)。我只是不喜欢它不一定会显示整个消息的想法,因为这让我觉得它对我隐藏了信息。但太多的信息也可能是一件坏事。
qgelzfjb

qgelzfjb1#

试试这个,它会列出所有的标签以及注解&每个标签9行消息:

git tag -n9

也可使用

git tag -l -n9

如果要列出特定标签:

git tag -l -n9 v3.*

(e.g,上述命令将仅显示以"v3"开头的标记。)

  • l,--list列出名称与给定模式匹配的标签(如果没有指定模式则为all)。运行不带参数的"git tag"也会列出所有标签。模式是一个shell通配符(即使用fnmatch(3)匹配)。可以指定多个模式;如果它们中的任何一个匹配,则显示该标签。
kgqe7b3p

kgqe7b3p2#

git tag -n99

这将列出每个标记注解/提交消息的最多99行。Here is a link to the official documentation for git tag
我现在认为每个标签最多只能显示99行的限制实际上是一件好事,因为大多数情况下,如果单个标签确实超过99行,您就不会真的想看到所有其他行了,是吗?如果您确实想看到每个标签超过99行,您可以随时将其增加到更大的数字。
我的意思是,我想可能有特定的情况或原因需要查看大量的标记消息,但在什么情况下您希望查看整个消息?当它超过999行时?10,000行?1,000,000行?我的观点是,通常有一个上限来限制您将看到多少行是有意义的,这个数字允许您设置它。
既然我在讨论你在查看标签时通常想看到的东西,那么把这样的东西设置为别名可能是有意义的(来自Iulian Onofrei下面的评论):
第一个月
我的意思是,您不希望每次只想查看标记时都必须输入git tag -n99,对吗?一旦配置了别名,无论何时想查看标记,只需在终端中输入git tags即可。就个人而言,我更愿意更进一步,为所有常用命令创建更简短的bash别名。为此,你可以在你的.bashrc文件中添加如下内容(适用于Linux和类似的环境):
alias gtag='git tag -n99'
然后,无论何时想查看标记,只需输入gtag即可。(git别名或bash别名或其他)是你现在已经有了一个地方,你可以添加更多的自定义到你个人,通常希望你的标签显示给你(比如像我下面的评论中那样以某种方式对它们进行排序,等等)。一旦你克服了创建第一个别名的冲动,你现在就会意识到为你喜欢以定制方式工作的其他事情创建更多的别名是多么容易,例如git log,但我们将其保存到其他问题/答案中。

uhry853o

uhry853o3#

Mark Longair's answer(使用git show)接近问题中所期望的内容。然而,它还包括标记所指向的提交,沿着该提交的完整补丁。由于提交可能与标记有些不相关(标记试图捕获的只是一个提交),这可能是不可取的。我认为以下内容更好一些:

for t in `git tag -l`; do git cat-file -p `git rev-parse $t`; done
szqfcxe2

szqfcxe24#

使用--format选项

git tag -l --format='%(tag) %(subject)'
yptwkmov

yptwkmov5#

它一点也不漂亮,但您可以创建一个脚本或别名来执行类似的操作:

for c in $(git for-each-ref refs/tags/ --format='%(refname)'); do echo $c; git show --quiet "$c"; echo; done
62lalag4

62lalag46#

仅最后一条标记消息:

git cat-file -p $(git rev-parse $(git tag -l | tail -n1)) | tail -n +6
ldfqzlk8

ldfqzlk87#

git tag -l --format='%(contents)'

git for-each-ref refs/tags/ --format='%(contents)'

将输出每个标记的完整注解消息(包括签名,如果其已签名)。

  • %(contents:subject)将仅输出第一行
  • %(contents:body)将输出没有第一行和签名的注解(仅限有用文本)
  • %(contents:signature)将仅输出PGP签名

更多信息请参见man git-for-each-ref“字段名称”部分。

btxsgosb

btxsgosb8#

您可以使用此命令显示标记的消息

git tag -n

-n选项用于显示消息。

hvvq6cgz

hvvq6cgz9#

我更喜欢在命令行上完成这个操作,但是如果你不介意使用Web界面,并且你使用GitHub,你可以访问https://github.com/user/repo/tags,然后点击每个标签旁边的“...”来显示它的注解。

相关问题