在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描述$(git rev-list——tags——max-count=1))
从技术上讲,不一定会得到最新的标签,但会得到标记的最新提交,这可能是你要找的东西,也可能不是。
其他回答
如果您需要最后两个标记(例如,为了生成当前标记和前一个标记之间的更改日志),下面的工作对我来说是有效的。我只在最新标签是HEAD的情况下测试过它。
PreviousAndCurrentGitTag=`git describe --tags \`git rev-list --tags --abbrev=0 --max-count=2\` --abbrev=0`
PreviousGitTag=`echo $PreviousAndCurrentGitTag | cut -f 2 -d ' '`
CurrentGitTag=`echo $PreviousAndCurrentGitTag | cut -f 1 -d ' '`
GitLog=`git log ${PreviousGitTag}..${CurrentGitTag} --pretty=oneline | sed "s_.\{41\}\(.*\)_; \1_"`
它适合我的需求,但因为我不是git巫师,我相信它可以进一步改进。我还怀疑如果提交历史向前移动,它会中断。我只是想说点有用的。
Git描述——标签
返回当前分支能看到的最后一个标记
git tag --sort=committerdate | tail -1
您可以查看一下git describe,它所做的事情与您所要求的类似。
我的第一个想法是你可以使用git rev-list HEAD,它以倒序的顺序列出所有的转速,并结合git标签-contains。当你找到一个引用,其中git tag——contains生成了一个非空列表,你已经找到了最新的标签。