在Git中获取最新标签的最简单方法是什么?
git tag a HEAD
git tag b HEAD^^
git tag c HEAD^
git tag
输出:
a
b
c
我应该写一个脚本来获得每个标记的日期时间并比较它们吗?
在Git中获取最新标签的最简单方法是什么?
git tag a HEAD
git tag b HEAD^^
git tag c HEAD^
git tag
输出:
a
b
c
我应该写一个脚本来获得每个标记的日期时间并比较它们吗?
当前回答
如果你需要一个获得当前分支上最新标签名称(通过标签日期)的一行程序:
git for-each-ref refs/tags --sort=-taggerdate --format=%(refname:short) --count=1 --points-at=HEAD
我们使用它来设置设置中的版本号。
输出的例子:
v1.0.0
也适用于Windows。
其他回答
要获得最新的标签,你可以这样做:
$ git for-each-ref refs/tags --sort=-taggerdate --format='%(refname)' --count=1
当然,您可以根据需要更改count参数或排序字段。似乎 你可能想问一个稍微不同的问题,但这确实回答了我理解的问题。
你可以执行:git describe——tags $(git rev-list——tags——max-count=1)这里谈到:如何获得最新的标签名称?
这里没有过多地提到无注释标记和带注释标记。'describe'作用于带注释的标签,而忽略未带注释的标签。
这是丑陋的,但完成了所要求的工作,它将不会在其他分支上找到任何标记(而不是在下面的例子中命令:master中指定的分支上)
过滤应该被优化(巩固),但这似乎是工作。
git log --decorate --tags master |grep '^commit'|grep 'tag:.*)$'|awk '{print $NF}'|sed 's/)$//'|head -n 1
欢迎批评,因为我现在要把它用起来:)
这个怎么样?
git描述$(git rev-list——tags——max-count=1))
从技术上讲,不一定会得到最新的标签,但会得到标记的最新提交,这可能是你要找的东西,也可能不是。
如果你需要一个获得当前分支上最新标签名称(通过标签日期)的一行程序:
git for-each-ref refs/tags --sort=-taggerdate --format=%(refname:short) --count=1 --points-at=HEAD
我们使用它来设置设置中的版本号。
输出的例子:
v1.0.0
也适用于Windows。