获取 repo 的最新标签

Get latest tag of repo

标签存在:

$ git tag
v4.0.0-alpha

但是当使用描述时:

$ git describe --tags
fatal: No tags can describe 'b42e62743a298e1dff2a686fde01319e9a75b65a'.
Try --always, or create some tags.

我确实遗漏了一些东西。但是什么? 如何正确获取 repo 的最新标签?

你可以使用

git for-each-ref --count=1 --sort='-*authordate' --format '%(refname:short)' refs/tags

这将显示存储库中的最新标签。

如果你使用

git describe --abbrev=0 --tags

您只会获得当前 HEAD 历史记录中包含的最新标签。

有时标签不包含在分支历史中。例如。它看起来像这样:

              master (somelib-1.1-SNAPSHOT)
              |
              V
o----o----o---o
      \
       o
       ^
       |
       somelib-1.0

原因可能是 svn 到 git 迁移,或者可能是某些发布工具执行此操作。