如何按时间顺序列出git标签? (首先是最近的标签)
git tag
仅显示字母顺序。
正确答案是:
git tag --sort=-taggerdate
taggerdate
是适当的字段。根据 git tag 手册页:
前缀
按值的降序排序。-
git tag
使用与 git-for-each-ref
相同的排序键,这是记录排序键的位置。
简单易记:
git log --tags --decorate --simplify-by-decoration
更容易阅读结果:
git log --tags --simplify-by-decoration --pretty="format:%d - %cr"
在 git 2.3.3 中,我可以这样做来让它们按日期排序:
git tag --sort version:refname
使用
git tag
排序时支持的类型有:
refname
- 按字典顺序排序version:refname
或 v:refname
- 根据版本排序问题的解决方案如下所示:
git tag -l --sort version:refname
还有很多与 git tagging 相关的有用命令,请务必查看这篇文章以了解更多详细信息。
git tag --sort=-creatordate
根据创建时间按时间倒序显示标签列表。这正是我需要的。 (taggerdate
是不同的顺序,不是我想要的。)
我发现有一个很好的单行文字,它将显示日期标签消息、标签作者,并且在列安排方面做得很好。
git for-each-ref --sort=taggerdate --format '%(tag)_,,,_%(taggerdate:raw)_,,,_%(taggername)_,,,_%(subject)' refs/tags \
| awk 'BEGIN { FS = "_,,,_" } ; { t=strftime("%Y-%m-%d %H:%M",$2); printf "%-20s %-18s %-25s %s\n", t, $1, $4, $3 }'
输出将如下所示:
...
2015-08-03 10:56 v1.51 Release v1.51 FirstName LastName
2015-08-10 16:12 v1.52 Release v1.52 Jane Doe
归功于此网站
试试这个
git log --tags --decorate --simplify-by-decoration | grep ^commit|grep tag|sed -e 's/^.*: //' -e 's/)$//'