使用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

回到顶部