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

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

输出:

a
b
c

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


当前回答

我不知道为什么这个问题没有答案。即所有标签(包括无注释的标签),不带后缀:

git describe --tags --abbrev=0

其他回答

您可以查看一下git describe,它所做的事情与您所要求的类似。

这个怎么样?

git描述$(git rev-list——tags——max-count=1))

从技术上讲,不一定会得到最新的标签,但会得到标记的最新提交,这可能是你要找的东西,也可能不是。

为了只获取当前分支/以当前分支为前缀的标记名上的最新标记,我必须执行以下命令

BRANCH=`git rev-parse --abbrev-ref HEAD` && git describe --tags --abbrev=0 $BRANCH^ | grep $BRANCH

主分支:

git checkout master

BRANCH=`git rev-parse --abbrev-ref HEAD` && git describe --tags 
--abbrev=0 $BRANCH^ | grep $BRANCH

master-1448

部门自定义:

git checkout 9.4

BRANCH=`git rev-parse --abbrev-ref HEAD` && git describe --tags 
--abbrev=0 $BRANCH^ | grep $BRANCH

9.4-6

我最后需要做的是增加并获得标签+1用于下一个标签。

BRANCH=`git rev-parse --abbrev-ref HEAD` && git describe --tags  --abbrev=0 $BRANCH^ | grep $BRANCH | awk -F- '{print $NF}'

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

在CI/CD进程中描述的问题是,您可能会遇到致命的问题:没有标签可以描述错误。

这将会发生,因为,per git describe——help:

该命令查找可从提交中访问的最新标记。

如果你想要repo中最新的标签,不管你所在的分支是否可以到达这个标签,通常是因为它不是当前分支树的一部分,这个命令会给你整个repo中最近创建的标签:

git tag -l --sort=-creatordate | head -n 1