使用JGit在存储库中获取最新提交
我想使用JGit获取存储库中的最后提交元数据(按日期最小的提交)。
我知道我可以使用以下方式获取提交元数据
try (RevWalk walk = new RevWalk(repository)) { RevCommit commit = walk.parseCommit(repository.resolve(commitHash));
}
但是如何获取最新的提交哈希?
还有其他方法可以RevCommit
直接在存储库中按日期获取最小数据吗?
回答:
按所有分支中的最后提交日期进行比较。 ListMode.ALL
可以更改为ListMode.REMOTE
仅比较远程分支。或者…
.setListMode(whatever)
可以省略流利的setter 以便从本地存储库读取。
RevCommit youngestCommit = null;Git git = new Git(repository);
List<Ref> branches = git.branchList().setListMode(ListMode.ALL).call();
try {
RevWalk walk = new RevWalk(git.getRepository());
for(Ref branch : branches) {
RevCommit commit = walk.parseCommit(branch.getObjectId());
if(youngestCommit == null || commit.getAuthorIdent().getWhen().compareTo(
youngestCommit.getAuthorIdent().getWhen()) > 0)
youngestCommit = commit;
}
} catch (...)
以上是 使用JGit在存储库中获取最新提交 的全部内容, 来源链接: utcz.com/qa/423916.html