Mar*_*zek 11
Git对象模型将标记描述为包含特定对象即信息的对象.因此,在纯git中获取所需信息是不可能的(提交对象没有相关标签的信息).这应该"向后"完成,获取标记对象,然后引用特定的提交.
因此,如果您想获取有关为特定提交指定的标记的信息,您应该迭代它们(标记)并选择适当的.
List<RevTag> list = git.tagList().call();
ObjectId commitId = ObjectId.fromString("hash");
Collection<ObjectId> commits = new LinkedList<ObjectId>();
for (RevTag tag : list) {
RevObject object = tag.getObject();
if (object.getId().equals(commitId)) {;
commits.add(object.getId());
}
}
Run Code Online (Sandbox Code Playgroud)
如果你知道你的提交只有一个标签,你可以在 JGit 的更新版本(~2013 年 11 月)中使用describe。
Git.wrap(repository).describe().setTarget(ObjectId.fromString("hash")).call()
Run Code Online (Sandbox Code Playgroud)
您可以解析结果,以查看标签是否存在,但如果可以有多个标签,则应使用 Marcins 解决方案。