在Git中获取最新标签的最简单方法是什么?

git tag a HEAD
git tag b HEAD^^
git tag c HEAD^
git tag

输出:

a
b
c

我应该写一个脚本来获得每个标记的日期时间并比较它们吗?


当前回答

如果你的标签是可排序的:

git tag --merged $YOUR_BRANCH_NAME | grep "prefix/" | sort | tail -n 1

其他回答

如果你需要一个获得当前分支上最新标签名称(通过标签日期)的一行程序:

git for-each-ref refs/tags --sort=-taggerdate --format=%(refname:short) --count=1 --points-at=HEAD

我们使用它来设置设置中的版本号。

输出的例子:

v1.0.0

也适用于Windows。

我的第一个想法是你可以使用git rev-list HEAD,它以倒序的顺序列出所有的转速,并结合git标签-contains。当你找到一个引用,其中git tag——contains生成了一个非空列表,你已经找到了最新的标签。

要获得最新的标签,你可以这样做:

$ git for-each-ref refs/tags --sort=-taggerdate --format='%(refname)' --count=1

当然,您可以根据需要更改count参数或排序字段。似乎 你可能想问一个稍微不同的问题,但这确实回答了我理解的问题。

如果你想找到应用在特定分支上的最后一个标签,你可以尝试以下方法:

git describe --tag $(git rev-parse --verify refs/remotes/origin/"branch_name")

你可以执行:git describe——tags $(git rev-list——tags——max-count=1)这里谈到:如何获得最新的标签名称?