java 列出git remote repo的分支而不克隆它

dgtucam1  于 2023-02-02  发布在  Java
关注(0)|答案(2)|浏览(192)

我想知道如何才能用jgit列出一个远程Git repo的所有分支,而不克隆它。
在浏览jgit的javadoc时,我发现了ListBranchCommand,但它似乎只适用于一个已经打开的Repository对象,但我无法找到如何通过HTTP创建一个Repository对象而不将其克隆到本地。
有可能吗?谢谢

pjngdqdw

pjngdqdw1#

LsRemoteCommand列出了远程存储库的分支。

Git.wrap(repo).lsRemote()

Git.lsRemoteRepository()

静态创建的LsRemoteCommand有其局限性,对于某些传输协议,需要本地存储库来获取配置设置,因此我通常使用Git.init()创建一个空的临时本地存储库,然后使用第一种方法。
如果你想避免创建额外的存储库,你可以用Transport.open()测试,如果没有存储库也能成功,否则会抛出一个NotSupportedException

mkshixfv

mkshixfv2#

好吧,没关系,经过几个小时的寻找答案,我发现它的权利之前,问它在那里...
答案就在CookBook中:

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

相关问题