Я использую JGit, чтобы клонировать репозиторий, внести некоторые изменения в файл, зафиксировать, пометить его, а затем отправить в удаленный репозиторий.
Я написал код с использованием JGit, который будет клонировать репозиторий, внести некоторые изменения в файл, затем зафиксировать изменение, создать новый тег и нажать фиксацию и тег.
Git git = Git.cloneRepository()
.setURI("https://*****@stash.dts.*****.git")
.setDirectory(outputFolder)
.call();
// Some code to update the file
git.add().addFilepattern(".").call();
git.commit().setMessage("File Commit").call();
// Creating tag
git.tag().setName(version).setForceUpdate(true).call();
// Pushing the commit and tag
git.push().call();
После нажатия я ожидаю, что удаленный репозиторий покажет мое изменение и новый тег, но изменение с commitId отображается в удаленном репозитории, но тег не виден. Он показывает «Нет тегов».
Чтобы отправить все теги, вам нужно специально включить это перед вызовом PushCommand
.
Например:
List<PushResult> pushResult = git.push().setPushTags().call();
В качестве альтернативы вы можете использовать PushCommand::setRefSpecs
, чтобы установить список спецификации, которые вы хотите отправить.