sti*_*g_1 327 tags git git-tag
我希望git列出所有标签以及完整的注释或提交消息.这样的事情很接近:
git tag -n5
Run Code Online (Sandbox Code Playgroud)
这正是我想要的,除了它只显示标签消息的前5行.
我想我可以使用非常大的数字.我在这里可以使用的最高数字是多少?每台电脑都一样吗?
更新:我有很多时间考虑这个问题,现在我认为如果它非常长,我不一定要展示整个信息.这样的事似乎适合我:
git tag -n99
Run Code Online (Sandbox Code Playgroud)
如果标签消息真的超过99行,我不想看到所有这些.但是Git极其复杂和灵活.在什么情况下,这不是最好的解决方案?我注意到许多已发布的解决方案都使用了-lotion,但这不只是指定要搜索的模式吗?
Zub*_*air 318
试试这个,它会列出所有标签以及每个标签的注释和9行消息:
git tag -n9
Run Code Online (Sandbox Code Playgroud)
也可以使用
git tag -l -n9
Run Code Online (Sandbox Code Playgroud)
如果要列出特定标签:
git tag -l -n9 v3.*
Run Code Online (Sandbox Code Playgroud)
(例如,上面的命令只显示以"v3"开头的标签.)
-l, - list列出名称与给定模式匹配的标记(如果没有给出模式,则列出所有标记).不带参数运行"git tag"也会列出所有标签.该模式是shell通配符(即使用fnmatch(3)匹配).可以给出多种模式; 如果它们中的任何一个匹配,则显示标记.
sti*_*g_1 102
git tag -n99
Run Code Online (Sandbox Code Playgroud)
简短又甜蜜.这将从注释/提交消息中列出最多99行.以下是git标签官方文档的链接:http://git-scm.com/docs/git-tag
Pau*_*ice 25
Mark Longair的答案(使用git show)接近于问题所需的答案.但是,它还包括标记指向的提交,以及该提交的完整修补程序.由于提交可能与标记有些无关(它只是标记试图捕获的一次提交),因此这可能是不合需要的.我相信以下内容更好一点:
for t in `git tag -l`; do git cat-file -p `git rev-parse $t`; done
Run Code Online (Sandbox Code Playgroud)
Mar*_*air 12
它远非漂亮,但您可以创建一个脚本或别名来执行以下操作:
for c in $(git for-each-ref refs/tags/ --format='%(refname)'); do echo $c; git show --quiet "$c"; echo; done
Run Code Online (Sandbox Code Playgroud)
gaR*_*Rex 10
仅限上次标记邮件:
git cat-file -p $(git rev-parse $(git tag -l | tail -n1)) | tail -n +6
Run Code Online (Sandbox Code Playgroud)
小智 10
使用 --format 选项
git tag -l --format='%(tag) %(subject)'
Run Code Online (Sandbox Code Playgroud)
git tag -l --format='%(contents)'
Run Code Online (Sandbox Code Playgroud)
或者
git for-each-ref refs/tags/ --format='%(contents)'
Run Code Online (Sandbox Code Playgroud)
将为每个标签输出完整的注释消息(如果签名,则包括签名)。
%(contents:subject) 将只输出第一行%(contents:body) 将输出没有第一行和签名的注释(仅限有用的文本)%(contents:signature) 将只输出 PGP 签名请参阅man git-for-each-ref“字段名称”部分中的更多信息。