如何使用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

回到顶部