在 JGit 中使用远程存储库

Working with a remote repository in JGit

我正在做一个必须使用 JGit 的项目。当我尝试使用远程 git 存储库(未在我的本地设备中克隆的 git)时遇到问题,我收到以下异常:

不存在 HEAD 且未指定明确的起始版本

如果我克隆存储库,它运行良好,但存储库很大,由于项目要求我无法克隆它。有没有办法使用远程存储库?我只做简单的读取操作。

为了访问 Git 存储库的历史,您需要先克隆它。如果您对工作目录不感兴趣,克隆可能是空的,但需要克隆。

Git 允许创建一个仅包含指定深度的历史的浅克隆,但是 JGit 仍然缺乏对浅克隆的支持: https://bugs.eclipse.org/bugs/show_bug.cgi?id=475615

JGit 支持遍历远程可用的引用(即标签、分支...),参见例如https://github.com/centic9/jgit-cookbook/blob/master/src/main/java/org/dstadler/jgit/porcelain/ListRemoteRepository.java

然后,如果您提供适当的 RefSpecs,您可能只能获取存储库的一部分。