如何使用 JGit 显示提交文件(git show --name-only)
How to show the files of a commit (git show --name-only) using JGit
我想要与以下命令相同的输出
git show --pretty="format:" --name-only <commitid>
通过使用 JGit
有人可以帮助我了解如何进行的分步程序吗?
您可以使用 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();
我想要与以下命令相同的输出
git show --pretty="format:" --name-only <commitid>
通过使用 JGit
有人可以帮助我了解如何进行的分步程序吗?
您可以使用 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();