Класс Repository
JGit представляет локальный репозиторий, довольно часто клон удаленного репозитория.
LsRemoteCommand
, возвращаемое Git::lsRemoteRepository
, работает вне контекста локального хранилища и, следовательно, возвращает null
для getRepository
.
A Ref
в JGit также не имеет ссылки на репозиторий, так как они могут происходить из репозитория без локального представления. Помните, например, что нет локального репозитория для ссылок, возвращаемых LsRemoteCommand
.
Чтобы сделать что-нибудь полезное с хранилищем, его нужно сначала клонировать. Например, с помощью:
Git git = Git.cloneRepository().setURI(url).call();
// do something with repository, access to repository through git.getRepostory()
git.close();
Код эквивалентен git clone <url>
. Если URL-адрес https://host.org/repo.git
, команда создаст клон в подкаталоге repo
текущего рабочего каталога.
Подробнее о клонировании репозиториев с помощью JGit можно узнать здесь: https://www.codeaffine.com/2015/11/30/jgit-clone-repository/