Java JGit:我能在不签出的情况下找出Git存储库中是否存在特定的标记吗?

Java JGit:我能在不签出的情况下找出Git存储库中是否存在特定的标记吗?,java,git,version-control,jgit,Java,Git,Version Control,Jgit,我需要用Java编写一段代码,测试Git存储库中是否存在特定的标记 最明显的方法是: git = Git.cloneRepository() .setURI(gitUri) .setDirectory(dir) .call(); git.checkout().setName(String.format("refs/tags/%s", version)).call(); 如果标记version不存在,将引发异常 但这种方式要求我有一个目录(dir)

我需要用Java编写一段代码,测试Git存储库中是否存在特定的标记

最明显的方法是:

git = Git.cloneRepository()
        .setURI(gitUri)
        .setDirectory(dir)
        .call();
git.checkout().setName(String.format("refs/tags/%s", version)).call();
如果标记
version
不存在,将引发异常

但这种方式要求我有一个目录(
dir
),存储库将签出到该目录中


是否可以在不在磁盘上签出的情况下查明远程存储库中是否存在标记?如果是,我怎么做

LsRemoteCommand能够列出远程存储库拥有的引用

可以将该命令配置为包含如下标记:

LsRemoteCommand ls=Git.lsRemoteRepository();
集合remoteRefs=ls
.setRemote(“远程回购的url”)
.setHeads(true)//默认情况下为true,如果对refs/heads不感兴趣,则设置为false/*
.setTags(true)//在结果中包含标记
.call();
如果希望获得ref名称到
ref
对象的映射,可以使用
callAsMap()
执行命令