我想知道怎么可能用jgit列出远程Git仓库的所有分支但没有克隆它。
在浏览jgit的javadoc时,我找到了ListBranchCommand,但这似乎只适用于已打开的Repository对象。但我无法找到如何通过HTTP创建Repository对象而无需在本地克隆它。
有可能吗? 感谢
答案 0 :(得分:4)
有LsRemoteCommand
列出远程存储库的分支。要获取该命令,请使用
Git.wrap( repo ).lsRemote()
或
Git.lsRemoteRepository()
静态创建的LsRemoteCommand
有其局限性。对于某些传输协议,需要本地存储库来获取配置设置。因此,我通常使用Git.init()
创建一个空的临时本地存储库,然后使用第一种方法。
如果您想避免创建额外的存储库,可以使用Transport.open()
进行测试,如果它没有存储库则成功。否则会抛出NotSupportedException
。
答案 1 :(得分:2)
好的,没关系,经过几个小时寻找答案后,我才发现它在那之前就问了......
所以,答案在CookBook:
Collection<Ref> refs = Git.lsRemoteRepository()
.setHeads(true)
.setTags(true)
.setRemote(REMOTE_URL)
.call();