在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
我应该写一个脚本来获得每个标记的日期时间并比较它们吗?
当前回答
为了只获取当前分支/以当前分支为前缀的标记名上的最新标记,我必须执行以下命令
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}'
其他回答
这是一个老线程,但似乎很多人都忽略了OP问题最简单、最简单、最正确的答案:要获得当前分支的最新标记,您可以使用git describe HEAD。完成了。
编辑:您还可以提供任何有效的refname,甚至远程;也就是说,git describe origin/master会告诉你从origin/master可以到达的最新标签。
我的第一个想法是你可以使用git rev-list HEAD,它以倒序的顺序列出所有的转速,并结合git标签-contains。当你找到一个引用,其中git tag——contains生成了一个非空列表,你已经找到了最新的标签。
您可以查看一下git describe,它所做的事情与您所要求的类似。
将输出的标签的最新标签提交跨所有分支
git describe --tags $(git rev-list --tags --max-count=1)
如果你的标签是可排序的:
git tag --merged $YOUR_BRANCH_NAME | grep "prefix/" | sort | tail -n 1