如何使用 JGit 创建和推送标签

How to create and push tags with JGit

我正在使用 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 的更改显示在远程存储库中,但标签不可见。它正在显示 'No Tags'。

要推送所有标签,您需要在调用 PushCommand.

之前专门启用它

例如:

List<PushResult> pushResult = git.push().setPushTags().call();

或者,您可以使用 PushCommand::setRefSpecs 设置您希望推送的 列表。