Git使用排序显示轻量级标签的排序列表

时间:2014-06-19 11:22:46

标签: git bash sorting

我有一大堆在repo中创建的轻量级标签,我需要对它进行排序并返回前5个标签。我的理解是,轻量级标签不能按创建日期排序,因为它们只是提交的指针。

我希望能够(用于bash脚本)获取最后5个(这将是字母数字顺序)

因此,例如,如果我运行这些命令(不是我会添加这样的标签,只是为了突出我想要的):

git tag 1.0.0
git tag 1.4.0
git tag 1.2.0
git tag 1.6.0
git tag 1.7.0
git tag 1.8.0

我想要一个如下列表:

  • 1.8.0
  • 1.7.0
  • 1.6.0
  • 1.4.0
  • 1.2.0

我知道我能做到

git tag | head -n5

但这些没有正确排序,这是前5个标签。

我知道如果这些是注释标签我可以使用git describe或做类似

的事情
git for-each-ref --sort=-taggerdate \
--format '%(refname:short) %(taggerdate:raw)' refs/tags

但由于上述原因,这对轻量级标签不起作用。

那么有没有办法列出最后的5个(无论是按数字排序还是按日期排序,因为它总是相同的)轻量级标签?

我知道我可能会这样做https://stackoverflow.com/a/21032471/1185180来转换它们,但我宁愿不要......

1 个答案:

答案 0 :(得分:1)

> git tag
1.0.0
1.2.0
1.4.0
1.6.0
1.7.0
1.8.0
> git tag | sort -r | head -5
1.8.0
1.7.0
1.6.0
1.4.0
1.2.0