Проверьте конкретную ревизию из Git-репозитория с JGit
Я пытаюсь использовать jGit для клонирования репозитория и проверки конкретного коммита.
Предполагая, что хеш коммита: 1e9ae842ca94f326215358917c620ac407323c81.
Мой первый шаг:
// Cloning the repository
Git.cloneRepository()
.setURI(remotePath)
.setDirectory(localPath)
.call();
Затем я нашел другой вопрос, который предложил этот подход:
git.checkout().
setCreateBranch(true).
setName("branchName").
setUpstreamMode(CreateBranchCommand.SetupUpstreamMode.TRACK).
setStartPoint("origin/" + branchName).
call();
Но я не уверен, как связать два вместе?
Какие-нибудь мысли?
1 ответ
Решение
Сначала вам нужно будет клонировать репозиторий, поэтому ваш первый шаг был верным:
Git.cloneRepository().setURI( remotePath ).setDirectory( localPath ).call();
Чтобы просто оформить коммит по его идентификатору, вы можете позвонить checkout
как это:
git.checkout().setName( "<id-to-commit>" ).call();
Но учтите, что это приведет к отсоединению ГОЛОВКИ. Чтобы избежать этого, вы можете сказать checkout
сначала создать новую ветку, которая указывает на коммит, а затем оформить эту ветку.
git.checkout().setCreateBranch( true ).setName( "new-branch" ).setStartPoint( "<id-to-commit>" ).call();
API не очень интуитивно понятен, но он делает то, что должен.