Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取jGit中某些提交后所有更改的文件?_Java_Git_Jgit - Fatal编程技术网

Java 如何获取jGit中某些提交后所有更改的文件?

Java 如何获取jGit中某些提交后所有更改的文件?,java,git,jgit,Java,Git,Jgit,TreeWalk允许在单个提交或整个存储库中获取所有更改,并且每次提交时检查更改的文件(通过RevWalk)的速度非常慢,大约2分钟。是否有任何方法可以遍历已更改的文件并检入上次更改的提交?还是其他更快的解决方案? 以下是我从提交中获取更改文件的代码: TreeWalk TreeWalk=prepareTreeWalk(commit,git.getRepository()); 列表文件=新的ArrayList(); while(treeWalk.next()){ if(!hasSimilar(t

TreeWalk允许在单个提交或整个存储库中获取所有更改,并且每次提交时检查更改的文件(通过RevWalk)的速度非常慢,大约2分钟。是否有任何方法可以遍历已更改的文件并检入上次更改的提交?还是其他更快的解决方案? 以下是我从提交中获取更改文件的代码:

TreeWalk TreeWalk=prepareTreeWalk(commit,git.getRepository());
列表文件=新的ArrayList();
while(treeWalk.next()){
if(!hasSimilar(treeWalk)){
add(treeWalk.getPathString());
}
}
以及选择提交(由于某些特殊原因):

返回列表。反向(StreamSupport.stream(
git.log()
.add(git.getRepository().resolve(branch.getName()))
.call()
.spliterator(),false)
.filter(因为(sinceCommit::equals))
.collect(Collectors.toList());

我知道下面的命令行,它将在毫秒内打印输出


git格式补丁初始提交--stdout>output.patch

与其他提交相比,您会比较'since commit'以获得更改的文件吗?那会是
HEAD
?从一些旧提交到当前分支的最新提交我想你的问题在这里得到了回答:要查找“自”提交,我建议使用一个简单的
RevWalk
,带有如下所示的日期过滤器: