Проверьте конкретную ревизию из 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 не очень интуитивно понятен, но он делает то, что должен.

Другие вопросы по тегам