你如何用 JGit 做相当于“git show tagname”的操作?
Posted
技术标签:
【中文标题】你如何用 JGit 做相当于“git show tagname”的操作?【英文标题】:How do you do the equivalent of a "git show tagname" with JGit? 【发布时间】:2013-11-29 11:09:44 【问题描述】:我在 org.eclipse.jgit.api 中找不到任何看起来很合理的东西。我的印象是“git show”是一个瓷器命令,我看到很多其他类用于更晦涩的命令。
这可能吗?
【问题讨论】:
【参考方案1】:RevTag 类表示 JGit 中的标签。要从存储库中读取标签,您需要像这样使用 RevWalk:
Repository repository = ...
ObjectId objectId = ObjectId.fromString("a33a2d4dff046b3a19e36b3d1026fbcc5b806889");
try (RevWalk revWalk = new RevWalk(repository))
RevTag revTag = revWalk.parseTag(objectId);
// do something with revTag
JGit 项目还提供了一个命令行解释器,其功能与原生 git 非常相似。它可以在 org.eclipse.jgit.pgm 包/库中找到。如果您想了解有关从标签或引用的提交获取信息的更多信息,我建议您查看show command。
【讨论】:
我的代码抛出org.eclipse.jgit.errors.IncorrectObjectTypeException: Object 3dfc94dd89b1bd2d30f738d63fd213820ea1a496 is not a tag.
以上是关于你如何用 JGit 做相当于“git show tagname”的操作?的主要内容,如果未能解决你的问题,请参考以下文章