每个提交都指向一 棵树 ,该 树 表示构成该提交的所有文件。注意,这不仅包括使用此特定提交添加,修改或删除的文件,还包括此修订版中包含的所有文件。
如果将提交表示为a
RevCommit,则可以通过以下方式获取树的ID:
ObjectId treeId = commit.getTree();
如果提交ID来自另一个来源,则需要首先对其进行解析以获取关联的树ID。例如,请参见此处:如何使用JGit从SHA1ID字符串获取RevCommit或ObjectId?
为了遍历树,请使用
TreeWalk:
try (TreeWalk treeWalk = new TreeWalk(repository)) { treeWalk.reset(treeId); while (treeWalk.next()) { String path = treeWalk.getPathString(); // ... }}如果您只对通过特定提交记录的更改感兴趣,请参见此处:使用JGit创建差异



