我想列出与特定模式相匹配的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。