Java 列出自使用JGit从master创建分支以来的所有提交

Java 列出自使用JGit从master创建分支以来的所有提交,java,jgit,git-log,Java,Jgit,Git Log,我正试图使用JGit来获取一个特定于分支的提交日志,因为它是创建的。我在论坛上发现了一些帖子,听起来像是在描述这一点,但它们似乎都返回了对分支的承诺以及之前的所有内容 我基本上想用JGit模拟这个git命令 git log master..testBranch 这正是我想要的。下面的代码片段应该做到这一点,它向后遍历分支testBranch,直到提交打开master 我还将其添加到我的 try(Git-Git=new-Git(存储库)){ Iterable logs=git.log() .no

我正试图使用JGit来获取一个特定于分支的提交日志,因为它是创建的。我在论坛上发现了一些帖子,听起来像是在描述这一点,但它们似乎都返回了对分支的承诺以及之前的所有内容

我基本上想用JGit模拟这个git命令

git log master..testBranch

这正是我想要的。

下面的代码片段应该做到这一点,它向后遍历分支
testBranch
,直到提交打开
master

我还将其添加到我的

try(Git-Git=new-Git(存储库)){
Iterable logs=git.log()
.not(repository.resolve(“master”))
.add(repository.resolve(“remotes/origin/testBranch”))
.call();
计数=0;
for(RevCommit rev:logs){
System.out.println(“提交:“+rev/*+”,名称:“+rev.getName()+”,id:“+rev.getId().getName()*/”;
计数++;
}
System.out.println(“Had”+count+“仅在测试分支上提交”);
}

谢谢,谢谢你添加它。我已经在你的食谱中找到了这个,它很有用。我发现了更复杂的例子,但我知道它必须简单得多。
        try (Git git = new Git(repository)) {
            Iterable<RevCommit> logs = git.log()
                    .not(repository.resolve("master"))
                    .add(repository.resolve("remotes/origin/testBranch"))
                    .call();
            count = 0;
            for (RevCommit rev : logs) {
                System.out.println("Commit: " + rev /* + ", name: " + rev.getName() + ", id: " + rev.getId().getName() */);
                count++;
            }
            System.out.println("Had " + count + " commits only on test-branch");
        }