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