如何使用JGit显示提交文件(git show --name-only)

时间:2015-04-15 05:15:06

标签: git jgit

我想要与以下命令

给出的输出相同
git show --pretty="format:" --name-only <commitid>

使用JGit

有人可以帮助我逐步完成如何处理吗?

1 个答案:

答案 0 :(得分:0)

您可以使用RevWalk获取相关提交的,然后使用TreeWalk来迭代该提交中包含的文件。

Repository repo = git.getRepository();
ObjectId commitId = repo.resolve( "<id of commit>" );
RevWalk revWalk = new RevWalk( repo );
RevCommit commit = revWalk.parseCommit( commitId );
RevTree tree= commit.getTree();
TreeWalk treeWalk = new TreeWalk( repo );
treeWalk.addTree( tree );
treeWalk.setRecursive( true );
while( treeWalk.next() ) {
  System.out.println( treeWalk.getPathString() );
}
revWalk.release();
treeWalk.release();