我想知道如何使用jgit列出远程Git存储库的所有分支,但不需要克隆它。
在查看jgit的javadoc时,我发现ListBranchCommand,但似乎只适用于已打开的Repository对象。但我找不到如何通过HTTP创建Repository对象而不将其克隆到本地。
这可能吗?
谢谢
好的,没关系,在寻找答案多个小时之后,我在询问之前找到了它...
所以,答案在CookBook中:
Collection<Ref> refs = Git.lsRemoteRepository()
.setHeads(true)
.setTags(true)
.setRemote(REMOTE_URL)
.call();
有一个 LsRemoteCommand
命令可以列出远程代码库的分支。要获取该命令,请使用以下任一方法:
Git.wrap(repo).lsRemote()
或者
Git.lsRemoteRepository()
LsRemoteCommand
有其局限性。对于某些传输协议,需要本地存储库来获取配置设置。因此,我通常使用 Git.init()
创建一个空的临时本地存储库,然后使用第一种方法。Transport.open()
进行测试,看它是否能够在没有存储库的情况下成功。否则,它会抛出 NotSupportedException
异常。
Git.init()
创建)即可使某些传输协议正常工作。 - Rüdiger Herrmann