java – 使用JGit获取存储库中的最新提交
作者:互联网
我想使用JGit在存储库中获取最后的提交元数据(按日期最小的一个).
我知道我可以使用提交元数据
try (RevWalk walk = new RevWalk(repository)) {
RevCommit commit = walk.parseCommit(repository.resolve(commitHash));
}
但是如何获取最新的提交哈希?
有没有其他方法可以直接在存储库中获取最年轻的RevCommit日期?
解决方法:
比较所有分支中最后提交的日期.
可以将ListMode.ALL更改为ListMode.REMOTE以仅比较远程分支.
或者……可以省略流畅的setter .setListMode(无论如何)从本地存储库中读取.
RevCommit youngestCommit = null;
List<Ref> branches = new Git(repository).branchList().setListMode(ListMode.ALL).call();
try(RevWalk walk = new RevWalk(git.getRepository())) {
for(Ref branch : branches) {
RevCommit commit = walk.parseCommit(branch.getObjectId());
if(commit.getAuthorIdent().getWhen().compareTo(
youngestCommit.getAuthorIdent().getWhen()) > 0)
youngestCommit = commit;
}
}
标签:java,git,jgit 来源: https://codeday.me/bug/20190622/1265706.html