当前位置: 首页 > 知识库问答 >
问题:

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

濮阳鸿祯
2023-03-14

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

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

git log master..testBranch

这正是我想要的。

共有1个答案

陶温书
2023-03-14

下面的代码片段应该这样做,它向后移动分支 testBranch,直到提交在 master 上。

我还将它添加到了我的jgit-cookbook中的示例片段中

        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");
        }
 类似资料:
  • 如何使用jgit遍历来自特定分支的特定提交的所有内容? 这段代码从提交中检索一个特殊文件,但我希望遍历提交的所有内容。

  • 我需要使用JGit获取与特定提交关联的分支的名称。我使用JGit获取存储库的提交SHA的完整列表,现在我需要知道它所属的分支的名称。 如果有人能让我知道我如何做到这一点,我将不胜感激。

  • 我用JGit签出了一个远程跟踪分支。 文件已签出,但头部未指向分支。下面是git状态的输出, 同样的操作也可以在git命令行中执行,非常简单,而且非常有效, 如何做到这一点?

  • 我正在使用JGit创建一个新的git存储库,文件夹中已经存在的所有内容都另存为new branch。 我正在用 (默认情况下,master分支是在上面的语句之后创建的,所以我将其重命名为Backup分支)。 问题是当我推后支时,它被推了,但我无法建立远程跟踪。 从终端:如果我使用结果是 根据链接,让现有的Git分支跟踪远程分支?我可以使用终端中的来指定推送backupbranch后的任何时间。 如

  • 我想使用JGit获得存储库中两次修订(散列)之间的提交列表。 我不知道提交(开始提交哈希,结束提交哈希)是在一个分支中还是在不同的分支中。 我知道如何从JGit中的提交开始遍历树。 我的问题:我是必须在存储库的所有分支中查找提交散列,还是可以像这样只使用< code > Respository::resolve(): 并确保我将同时找到提交开始和结束?

  • 本文向大家介绍Git 创建分支提交远程分支详解,包括了Git 创建分支提交远程分支详解的使用技巧和注意事项,需要的朋友参考一下 Git 创建分支提交远程分支详解 1.创建本地分支 git branch 分支名,例如:git branch 2.0.1.20120806 注:2.0.1.20120806是分支名称,可以随便定义。 2.切换本地分支 git checkout 分支名,例如从master切