有谁知道如何使用 JGit API 来获取文件列表?我尝试找到类似的功能,例如git show
在本地存储库上使用命令,例如
git ls-tree -r --name-only 7feff221f86e040f0cd2e4227e9e1496fe16f376
我有一些这样的代码
File gitDir = new File("/Users/xiansongzeng/NIOServer");
Git git = Git.open(gitDir);
Repository repo = git.getRepository();
ObjectId lastCommitId = repo.resolve("7feff221f86e040f0cd2e4227e9e1496fe16f376");
RevWalk revWalk = new RevWalk(repo);
RevCommit commit = revWalk.parseCommit(lastCommitId);
RevTree tree= commit.getTree();
TreeWalk treeWalk = new TreeWalk(repo);
treeWalk.addTree(tree);
treeWalk.setRecursive(true);
treeWalk.setFilter(PathFilter.create("src/main/java/nds/socket/server/Reader.java"));
if(!treeWalk.next()){
System.out.println("Not found.");
return;
}
ObjectId objectId = treeWalk.getObjectId(0);
此代码针对本地存储库,用于RevWalk
遍历最后一次提交的修订树。我发现这个示例PathFilter
用于获取文件的引用,但不知道如何获取所有 Java 文件的列表。欢迎任何建议。