首页 文章

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

提问于
浏览
272

我希望git列出所有标签以及完整的注释或提交消息 . 这样的事情很接近:

git tag -n5

这正是我想要的,除了它只显示标签消息的前5行 .

我想我可以使用非常大的数字 . 我在这里可以使用的最高数字是多少?每台电脑都一样吗?

UPDATE :我有很多时间考虑这个问题,现在我觉得如果时间太长,我不一定要展示整个信息 . 这样的事似乎适合我:

git tag -n99

如果标签消息真的超过99行,我不想看到所有这些 . 但是Git极其复杂和灵活 . 在什么情况下,这不是最好的解决方案?我注意到许多已发布的解决方案使用了 -l otion,但这不仅仅是为了指定要搜索的模式吗?

6 回答

  • 7

    仅限上次标记邮件:

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

    我更喜欢在命令行上执行此操作,但如果您不介意Web界面并使用GitHub,则可以访问 https://github.com/user/repo/tags 并单击每个标记旁边的"..."以显示其注释 .

  • 266
    git tag -n99
    

    简短又甜蜜 . 这将从注释/提交消息中列出最多99行 . 这是git标签官方文档的链接:http://git-scm.com/docs/git-tag

  • 76

    Mark Longair's answer(使用 git show )接近问题所需 . 但是,它还包括标记指向的提交,以及该提交的完整修补程序 . 由于提交可能与标记有些无关(它只是标记试图捕获的一次提交),因此这可能是不合需要的 . 我相信以下内容更好一点:

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

    它远非漂亮,但您可以创建一个脚本或别名来执行以下操作:

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

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

    git tag -n9
    

    也可以使用

    git tag -l -n9
    

    如果要列出特定标签:

    git tag -l -n9 v3.*
    

    (例如,上面的命令只显示以“v3”开头的标签 . )

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

相关问题