社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

在执行git签出时查找标记名-f

Anthony • 6 年前 • 1959 次点击  

当使用签出存储库时,是否有方法查找git标记信息 git checkout -f <hash> ?

我知道 git describe --tags --abbrev=0 显示git标记号,但在我的jenkins文件中,签出是由 git签出-f<哈希> . 所以 git describe 从我的jenkinsfile只显示提交号,但不显示标记名。是否可以获取标记名?我试过了 env.TAG_NAME 那是空的。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43926
文章 [ 1 ]  |  最新文章 6 年前
torek
Reply   •   1 楼
torek    6 年前

首先,看看升级詹金斯系统是否有效。如果没有,尝试 git tag --points-at HEAD .

看待这个问题有两种方法。

  • 其中一个假设是,您试图“倒退”,即获取您发现处于分离状态的存储库 HEAD 猜猜它是怎么来的。第一个问题是它可能没有通过 git checkout <tag-name> 完全。第二个是即使在这种情况下, git describe --tags --abbrev=0 会给一个人看 git describe 显示可能不是实际用来完成签出的显示。

    原因是git的标记主要是用于从人类可读的名称转换为hash id的机制。可能有 多个名字 对于任何给定的提交哈希ID,如果是, GIT描述 就挑一个用它。在 Git versions 1.7.10 and later , Git标记——指向头部 将列出 全部的 指向当前提交的标记;然后可以尝试猜测其中的哪一个(如果有的话)。

    或者,您可以使用存储库的 ReFug,如果使用了标签,它将包含一个包含标签名称的行。这个 git status 命令,在现代git中,执行此操作,并打印 HEAD detached at tag-name 为了这个案子。这比 GIT描述 输出, 假如 有问题的存储库启用了reflog,并且有一个reflog条目。这两个reflogs都未启用,如果启用,则保证有合适的entry。因此,这种方法的描述和要点更加可靠。

  • 另一种看待这一点的方式是假设你希望“继续前进”:詹金斯自己已经做了 git checkout 操作。在这种情况下,您只需要说服jenkins为您生成它传递给您的标记名 GIT校验 .

    那里 应该 做一个这样的人。真的吗? 应该 做你已经尝试过的,即使用 env.TAG_NAME . 显然,这是, claimed to work now 。也许升级詹金斯可以做到这一点。

    我很高兴在我的声明中得到更正,詹金斯的文件 糟糕透了 通过找到一些完整、全面和准确的文档,包括哪些版本的jenkins支持哪些特性、哪些流水线阶段是并行运行的以及哪些不是并行运行的等等,这是非常不充分的,但我从来没有找到任何。(Git至少是 小的 更好的是可以搜索 release notes 以了解何时添加了特定功能,但在这里,情况可能会好得多。与python文档相比,python文档在某些特性(如 pathlib 是新的。