JGit:检索与git commit关联的标签

标签 jgit

我想使用JGit API来检索与特定提交哈希关联的标签(如果有的话)?

请提供相同的代码段。

最佳答案

Git object model将标签描述为一个对象,其中包含有关特定对象的信息,即。提交(除其他事项外),因此在纯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());
    }
}

关于JGit:检索与git commit关联的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7501646/

相关文章:

remote-access - JGit : connect to distant repository

java - 使用 JGit 列出存储库的所有修订

git - checkout 时忽略 .gitattributes

jgit - 如果 JGit 中不存在创建它的存储库,如何打开它?

java - JGit : Add a file present in a folder using Add()

java - 使用 JGit 获取远程存储库的默认分支

java - JGit 错误-> 由 : java. 引起 lang.NoSuchMethodError: No virtual method toPath()

java - Jgit - 获取分支的所有提交

branch - 如何使用 ngit(或 jgit)将现有存储库的跟踪设置为远程存储库?

git svn 使用 jgit 获取