我有一个主分支,其中包含带注释的非轻量级标记提交。 工作区处于分离头状态,即在通过Jenkins Multibranch Pipeline
签出后当我运行git describe
时,我得到一个非常旧的标记的名称,以及自该标记以来的大量提交(例如1.0.0-459-abc1234
)
当我运行git tag
时,我会收到一份我感兴趣的所有标签列表,包括最新的标签,例如: 3.1.0
,3.2.0
。
我当时正在考虑做git branch -r --contains HEAD
这样的事情来获取远程分支的名称,然后获取并检查出来(运行我实际检查后来提交的风险而不是触发了管道,但无论如何,它被孤立到拉动请求...)
或者只是运行git describe <remote_branch_name>
但这两点都不奏效。
我不明白为什么Git更喜欢显示非常旧的标签而不是更新的标签,因为任何拉取请求都是从包含标签的master
分支分支出来的(每个提交的标签都保证被发现)在master
分支上。
答案 0 :(得分:0)
问题的原因可能实际上是不同的git版本。在升级到2.10.x之后,一个主机安装了相当旧的git版本(1.7.x),问题就消失了。
另一个可能的原因可能是我们有时会更新标签,将它们指向新的提交(我们停止这样做。)
我曾经注意到,当你创建一个轻量级标签,然后将其更改为带注释的标签时,另一个已经看过轻量级标签的客户端,当你执行{{1}时,将不会下载更新的,现在带注释的标签},因为它识别出它已经按名称看到了标记,并且不打扰标记的类型已经改变,因此git fetch --tags
不会为该客户端选择该标记。