我觉得你的命令的使用是正确的,它更回购/支的问题。
简单地说,从describe文档:
该命令将查找最近的标记,它是从提交访问。 如果标签指向提交,则只显示标签。 否则,它会将标记名称加上标记对象顶部的其他 提交的数量以及最近提交的缩写对象名称 后缀。
默认情况下(不带--all或--tags)git描述只显示带注释的 标签。有关创建注释标签的更多信息,请参阅-a 和-s选项以git-tag。
所以,如果没有被使用git describe
显示所需的标签,我们可以假设它要么:
- 没有到达从目前的承诺。
- 不是注释标签。
- 不是现有标签。
要显示未注释的标签,我们可以使用git describe --tags
。由于这似乎给了我们一个不同的标签,但不是您所追求的标签,我们可以得出结论,您感兴趣的标签不存在,或者无法从当前分支到达。
我克隆了有问题的回购库,并运行了git tag --list
,该库确实显示了一系列标签,包括0.3.3
,0.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
,我们将得到输出v0.3.5
,我们看不到由文档描述的后缀,因为标签指向当前提交(分支的顶端)。
是'v.0.3.5'您当前HEAD的前身?你检查了哪个提交? 'git rev-parse HEAD'说什么?我问,因为你的描述输出中显示的'gb3695ee'不是作为你引用的仓库中的提交而存在。 –