我想从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过滤标签。有人可以帮我吗
答案 0 :(得分:0)
repo.getRefDatabase().getRefsByPrefix("refs/tags/proj1/1.1")
JGit 5.9.0.202009080501-r。