如何使用git api的Java库从哈希值以编程方式远程获取标签或分支名称?

问题描述 投票:1回答:2

我已经搜索过JGIT ApiEGIT Dockohsuke git api doc

请有人可以指导我吗?

[我还想到了一种解决方法,可以通过sha1哈希(40个字符)来获取标签,方法是通过编程运行git命令,如另一篇SO文章所述。至少有上述api允许运行git命令吗?

java git github gitlab
2个回答
1
投票

您可以尝试使用GitHub API for commits将该哈希与已知标记进行比较。

我在“ GitHub API: Tag a commit belongs to ( parallel for git describe --tag <sha>)”中建议。我没有看到更直接的API。


1
投票

通常,您要在此执行的操作等同于所讨论的遥控器上的git describe --tag <sha>,然后根据引用查找名称。请注意,可能有多个引用具有相同的散列,因此您需要采用某种方法来确定要使用的引用。哈希也可能不指向任何引用,并且如果您想要类似git ls-remote的内容作为响应,则需要克隆存储库。

看起来JGit显然没有为此提供选项,但是它确实具有针对协议v2的LsRefsV2 API操作,这可能满足您的需求。您可以在首选API中搜索master~2等效项,然后可能会在其中找到一些帮助。

© www.soinside.com 2019 - 2024. All rights reserved.