我是JGit的新手,我正在搜索这个Git命令的实现:
git show --stat < sha >
(它向我显示提交中所有受影响的文件。)
我有RevCommit
,但如何获取git show
显示的信息?
答案 0 :(得分:0)
要列出构成提交的文件,您需要使用TreeWalk
。可以使用树的对象ID(SHA-1)初始化TreeWalk
,然后使用它遍历其条目。
例如:
TreeWalk treeWalk = new TreeWalk( repository );
treeWalk.setRecursive( true );
treeWalk.reset( commit.getId() );
while( treeWalk.next() ) {
String path = treeWalk.getPathString();
String blobId = treeWalk.getObjectId( 0 );
// ...
}
getPathString()
返回当前条目的(存储库相对)路径。
getObjectId()
需要一个索引来标识应该获取对象id的树迭代器。这里,第一个也是唯一一个树迭代器被指定为reset()
为给定提交的树隐式创建的内容。