繁体   English   中英

如何获取最新版本的git标签以及到HEAD的距离

[英]How to get the latest release tag in git and the distance to HEAD

https://github.com/google/glog为例。 最新版本是0.3.5。

在stackoverflow和Google上搜索了几个小时后,我找不到正确的答案。

git describe 

节目

v0.3.3-147-gb3695ee

git describe --tags

节目

v0.3.4-133-gb3695ee

git describe --tags `git rev-list --tags --max-count=1`

节目

v0.3.5

我应该输入什么命令才能获得

v0.3.5-41-gb3695ee

我认为您的命令使用是正确的,更多的是回购/分支问题。

简要地,从describe文档中:

该命令查找可从提交访问的最新标记。 如果标签指向提交,则仅显示标签。 否则,它将在标记名称后加上标记对象后附加的提交次数以及最近提交的缩写对象名称后缀。

默认情况下(不带--all或--tags),git describe只显示带注释的标签。 有关创建带注释标签的更多信息,请参见git-tag的-a和-s选项。

因此,如果没有使用git describe来显示所需的标签,我们可以假设是:

  • 从当前提交无法访问。
  • 不是带注释的标签。
  • 没有现有标签。

为了显示非注释标签,我们可以使用git describe --tags 由于这似乎为我们提供了一个不同的标签,但没有给您提供一个标签,因此我们可以得出结论,您感兴趣的标签不存在,或者无法从当前分支访问。

我克隆问题的回购,跑git tag --list这确实显示出选择的标签,包括0.3.30.3.40.3.5 因此,该标签似乎已存在,但不能位于master分支上。 我们可以使用git branch --contains <commit>确认这一点,其中<commit>0.3.5 如果您尚未克隆任何远程分支,则将没有任何结果。

我们可以运行git branch -r --contains <commit>来检查远程分支,它给出了输出origin/v035 看起来我们所需要的标签只能在远程origin/v035分支上访问。

如果我们在本地检出此分支,然后运行git describe --tags ,将获得输出v0.3.5 ,我们看不到文档描述的后缀,因为该标记指向当前提交(分支的尖端) 。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM