我想知道如何在不克隆的情况下使用 jgit 列出远程 Git 存储库的所有分支。
在浏览 jgit 的 javadoc 时,我发现了 ListBranchCommand但这似乎只适用于已经打开的 Repository 对象。但是我无法找到如何在不在本地克隆的情况下通过 HTTP 创建存储库对象。
这可能吗? 谢谢
最佳答案
LsRemoteCommand
用于列出远程存储库的分支。要获取命令,请使用
Git.wrap( repo ).lsRemote()
或
Git.lsRemoteRepository()
静态创建的 LsRemoteCommand
有其局限性。对于某些传输协议(protocol),本地存储库是获取配置设置所必需的。因此,我通常使用 Git.init()
创建一个空的临时本地存储库,然后使用第一种方法。
如果您想避免创建额外的存储库,您可以使用 Transport.open()
测试它是否在没有存储库的情况下成功。否则会抛出 NotSupportedException
。
关于java - 列出 git 远程仓库的分支而不克隆它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22631261/