如何在git中获取最新的发布标记以及与HEAD的距离

时间:2017-08-01 06:55:12

标签: git

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

1 个答案:

答案 0 :(得分:3)

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

简而言之,来自describe文档:

  

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

     

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

因此,如果未使用.video { width: 100%; position: relative; padding-bottom: 56.25%; /* ratio 16/9 */ } .video iframe { border: none; position: absolute; width: 100%; height: 100%; } 显示所需的代码,我们可以假设它是:

  • 无法从当前提交中获取。
  • 不是带注释的标签。
  • 不是现有标签。

要显示未注释的标记,我们可以使用git describe。由于这似乎给了我们一个不同的标签,但不是你所追求的标签,我们可能会得出结论,你感兴趣的标签要么不存在,要么无法从当前分支到达。

我克隆了有问题的回购并运行了git describe --tags,其中显示了一系列标记,包括git tag --list0.3.30.3.4。 所以标签似乎存在,但不能在0.3.5分支上。 我们可以使用master确认这一点,其中git branch --contains <commit>将为<commit>。如果您还没有克隆任何远程分支,这将不会给您带来任何结果。

我们可以运行0.3.5来检查远程分支,它提供输出git branch -r --contains <commit>。看起来我们所关注的标记只能在远程origin/v035分支上访问。

如果我们在本地签出此分支并运行origin/v035,我们将得到输出git describe --tags,我们没有看到文档描述的后缀,因为标记指向当前提交(分支的一角)。