如何在分离的头提交上使用git descripe?

如何在分离的头提交上使用git descripe?,git,github,jenkins,Git,Github,Jenkins,我有一个主分支,它在其中注释了非轻量级标记的提交。 工作区处于分离的头部状态,即通过签出后 当我运行git descripe时,我得到了一个非常旧的标记的名称,以及自该标记以来的大量提交(例如1.0.0-459-abc1234) 当我运行git-tag时,我会得到我感兴趣的所有标签的列表,包括最近的标签,例如3.1.0,3.2.0 然后我考虑做一些类似于git branch-r--contains HEAD的事情来获取远程分支的名称,然后获取并检查它(冒着这样的风险,我实际上是在检查一个比触发管

我有一个主分支,它在其中注释了非轻量级标记的提交。 工作区处于分离的头部状态,即通过签出后

当我运行
git descripe
时,我得到了一个非常旧的标记的名称,以及自该标记以来的大量提交(例如
1.0.0-459-abc1234

当我运行
git-tag
时,我会得到我感兴趣的所有标签的列表,包括最近的标签,例如
3.1.0
3.2.0

然后我考虑做一些类似于
git branch-r--contains HEAD
的事情来获取远程分支的名称,然后获取并检查它(冒着这样的风险,我实际上是在检查一个比触发管道的提交更晚的提交,但无论如何,它与拉请求是隔离的…) 或者只运行
git descripe
但这两者都不起作用。
我不明白为什么Git更喜欢显示非常旧的标记而不是最近的标记,因为任何pull请求都是从包含
master
分支的标记上分支出来的(已标记的每个提交都保证在
master
分支上找到)

问题的原因实际上可能是不同的git版本。一台主机安装了一个相当旧的git版本(1.7.x),在升级到2.10.x之后,问题就消失了。 另一个可能的原因可能是,我们有时会更新标记,将它们指向新的提交(我们不再这样做) 我曾经注意到,当您创建一个轻量级标记,然后将其更改为带注释的标记时,另一个已经看到轻量级标记的客户端不会下载更新的、现在带注释的标记,当您执行
git fetch--tags
时,因为它通过名称识别出它已经看到了标记,而且不必担心标记的类型已经更改,因此,
git descripe
将不会为该客户端拾取该标记。

如果您遵循当前(分离的)头提交(即其父级、父级、父级等),是否会找到带有标记3.x.0的提交?