如何搜索使用JGIT匹配特定模式的标签



我想列出与特定模式相匹配的git存储库中的标签。我找到了一种在git bash

中做到的方法
$ git tag -l "proj1/1.1*"

只会返回我

proj1/1.1
proj1/1.1.1
proj1/1.1.2

,但我不知道如何使用JGIT做同样的事情。我尝试了以下代码以从存储库中检索标签

FileRepositoryBuilder repositoryBuilder = new FileRepositoryBuilder();
repositoryBuilder.addCeilingDirectory(new File("D:\Repo"));
repositoryBuilder.findGitDir(new File("D:\Repo\.git"));
Repository repo = repositoryBuilder.build();
List<String> tagList = new ArrayList<String>();
Map<String, Ref> tags = repo.getTags();
for (Map.Entry<String, Ref> entry : tags.entrySet()) {
      tagList.add(entry.getKey());
}

上面的代码将我返回与该存储库相对应的所有标签,如下面的

proj1/1.1
proj1/1.1.1
proj1/1.1.2
proj2/2.1
proj3/3.1

我不知道如何使用JGIT过滤标签。任何人都可以帮助我

repo.getRefDatabase().getRefsByPrefix("refs/tags/proj1/1.1")

JGIT 5.9.0.202009080501-R。

最新更新