如何在分离的头部提交中使用git describe?

时间:2017-02-08 18:43:35

标签: git github jenkins

我有一个主分支,其中包含带注释的非轻量级标记提交。 工作区处于分离头状态,即在通过Jenkins Multibranch Pipeline

签出后

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

当我运行git tag时,我会收到一份我感兴趣的所有标签列表,包括最新的标签,例如: 3.1.03.2.0

我当时正在考虑做git branch -r --contains HEAD这样的事情来获取远程分支的名称,然后获取并检查出来(运行我实际检查后来提交的风险而不是触发了管道,但无论如何,它被孤立到拉动请求...) 或者只是运行git describe <remote_branch_name> 但这两点都不奏效。 我不明白为什么Git更喜欢显示非常旧的标签而不是更新的标签,因为任何拉取请求都是从包含标签的master分支分支出来的(每个提交的标签都保证被发现)在master分支上。

1 个答案:

答案 0 :(得分:0)

问题的原因可能实际上是不同的git版本。在升级到2.10.x之后,一个主机安装了相当旧的git版本(1.7.x),问题就消失了。 另一个可能的原因可能是我们有时会更新标签,将它们指向新的提交(我们停止这样做。) 我曾经注意到,当你创建一个轻量级标签,然后将其更改为带注释的标签时,另一个已经看过轻量级标签的客户端,当你执行{{1}时,将不会下载更新的,现在带注释的标签},因为它识别出它已经按名称看到了标记,并且不打扰标记的类型已经改变,因此git fetch --tags不会为该客户端选择该标记。