gpt4 book ai didi

java - 使用 JGit 获取更改文件列表

转载 作者:太空狗 更新时间:2023-10-29 14:13:17 33 4
gpt4 key购买 nike

我想知道如何在 pull 请求后检索已更改文件的列表。

我正在使用它来获取所有 merge 的提交,但我想知道所有已更改的文件。

Git git = new Git(localRepo);
PullCommand pullCmd = git.pull();
PullResult pullResult = pullCmd.call();
MergeResult mergeResult = pullResult.getMergeResult();
ObjectId[] mergedCommits = mergeResult.getMergedCommits();

for (ObjectId mergedCommit : mergedCommits) {
// And now?
}

最佳答案

基于之前的评论/问题:

在 pull 之前获取当前头部:

ObjectId oldHead = repository.resolve("HEAD^{tree}");

之后再次 pull :

ObjectId head = repository.resolve("HEAD^{tree}");

那么你应该能够以与 How do I do the equivalent of "git diff --name-status" with jgit? 中相同的方式运行差异:

ObjectReader reader = repository.newObjectReader();
CanonicalTreeParser oldTreeIter = new CanonicalTreeParser();
oldTreeIter.reset(reader, oldHead);
CanonicalTreeParser newTreeIter = new CanonicalTreeParser();
newTreeIter.reset(reader, head);
List<DiffEntry> diffs= git.diff()
.setNewTree(newTreeIter)
.setOldTree(oldTreeIter)
.call();

关于java - 使用 JGit 获取更改文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26143212/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com