如何使用JGit从SHA1 ID字符串获取RevCommit或ObjectId?
这个问题与这个问题相反:JGit如何从RevCommit获得SHA1?。
如果给我特定提交的SHA1 ID作为字符串,如何在JGit中获取ObjectId或关联RevCommit?
这是一个可能的答案,它遍历所有RevCommits:
RevCommit findCommit(String SHAId){
Iterable<RevCommit> commits = git_.log().call();
for (RevCommit commit: commits)
{
if (commit.getName().equals(SHAId))
return commit;
}
return null;
}
有什么比上面的实现更好的了吗?
回答:
首先将字符串转换为an ObjectId,然后再RevWalk查找它可能会更容易。
ObjectId commitId = ObjectId.fromString("ab434...");try (RevWalk revWalk = new RevWalk(repository)) {
RevCommit commit = revWalk.parseCommit(commitId);
}
以上是 如何使用JGit从SHA1 ID字符串获取RevCommit或ObjectId? 的全部内容, 来源链接: utcz.com/qa/420507.html