这个问题是这个问题的反面:JGit how do i get the SHA1 from a RevCommit?。
如果给我特定提交的SHA1 ID作为字符串,那么如何在JGit中获取ObjectId
或关联的RevCommit
?
这是一个可能的答案,它遍历所有RevCommit
:
RevCommit findCommit(String SHAId)
{
Iterable<RevCommit> commits = git_.log().call();
for (RevCommit commit: commits)
{
if (commit.getName().equals(SHAId))
return commit;
}
return null;
}
有什么比上面的实现更好的了吗?
最佳答案
首先将字符串转换为ObjectId
,然后让RevWalk
查找它可能会更容易。
ObjectId commitId = ObjectId.fromString("ab434...");
try (RevWalk revWalk = new RevWalk(repository)) {
RevCommit commit = revWalk.parseCommit(commitId);
}
关于sha1 - 如何使用JGit从SHA1 ID字符串获取RevCommit或ObjectId?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25755475/