编程语言
首页 > 编程语言> > java – 使用JGit获取存储库中的最新提交

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