Java 如何使用JGit读取Git注释,并给出提交sha

Java 如何使用JGit读取Git注释,并给出提交sha,java,git,jgit,git-notes,Java,Git,Jgit,Git Notes,我正在尝试使用JGit从存储库中特定提交的自定义refrefs/Notes/abcd中读取Git Notes信息 以下是我尝试过的: Repository repository = repositoryManager.openRepository(repoName); Git git = new Git(repository); ObjectId oid = repository.resolve("5740b142a7b5f66768a2d904b267dccaef1a095f"); Note

我正在尝试使用JGit从存储库中特定提交的自定义ref
refs/Notes/abcd
中读取Git Notes信息

以下是我尝试过的:

Repository repository = repositoryManager.openRepository(repoName);
Git git = new Git(repository);
ObjectId oid = repository.resolve("5740b142a7b5f66768a2d904b267dccaef1a095f");
Note note = git.notesShow().setNotesRef("refs/notes/abcd").setObjectId(oid).call();
ObjectLoader loader = repository.open(note.getData());
byte[] data = loader.getBytes();
System.out.println(new String(data, "utf-8"));
我发现以下编译错误:

错误:不兼容的类型:org.eclipse.jgit.lib.ObjectId无法转换为org.eclipse.jgit.revwalk.RevObject


如何将
RevObject
变量传递给Git
setObjectId()
给定提交sha字符串?

使用
RevWalk
,可以解析对象id,并将结果
RevCommit
传递给
ShowNoteCommand

例如:

RevCommit;
try(RevWalk RevWalk=new RevWalk(存储库)){
commit=revWalk.parseCommit(oid);
}
git.notesShow().setObjectId(提交)。。。

另请参见my中的准备运行示例