列出一个git远程仓库的分支而不克隆它

我想知道怎么可能用jgit列出远程Git仓库的所有分支但没有克隆它。

在浏览jgit的javadoc时,我发现了ListBranchCommand,但它似乎只适用于已经打开的Repository对象。 但我无法找到如何通过HTTP创建Repository对象而不在本地克隆它。

可能吗 ? 谢谢

LsRemoteCommand用于列出远程存储库的分支。 要获取该命令,请使用其中一个

 Git.wrap( repo ).lsRemote() 

要么

 Git.lsRemoteRepository() 

静态创建的LsRemoteCommand有其局限性。 对于某些传输协议,需要本地存储库来获取配置设置。 因此,我通常使用Git.init()创建一个空的临时本地存储库,然后使用第一种方法。

如果要避免创建额外的存储库,可以使用Transport.open()进行测试,如果它没有存储库则成功。 否则会抛出NotSupportedException

好吧,没关系,经过几个小时寻找答案后,我发现它就在那里问它之前……

所以,答案在CookBook中 :

 Collection refs = Git.lsRemoteRepository() .setHeads(true) .setTags(true) .setRemote(REMOTE_URL) .call();