java - 从 Java 中查找所有更改给定目录的提交

标签 java jgit

我写了一个Java程序,我用的是jgit。在这个 Java 程序中,我想列出某个 git 存储库 g 的所有提交,这些提交至少更改了目录 x 中的一个文件。

我不想在“命令行”中解决问题,而是在 Java 中解决。

最佳答案

在JGit 的高级API 中你可以使用Git.log()使用“addPath”获取相关提交的简单列表。

   logs = git.log()
            .addPath("pom.xml")
            .call();

查看此 snippetjgit-cookbook一个准备运行的例子。

一般来说入门类的方法Git提供与常规 git 命令类似的功能。


对于提供更细粒度控制/结果的低级 API,您可以使用 Git.diff()与“newTree”和“oldTree”和“pathFilter”。这些树是通过 RevWalk 构建的和 CanonicalTreeParser

jgit-cookbook 中有此方法的相关片段在 ShowFileDiff.java

关于java - 从 Java 中查找所有更改给定目录的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75039051/

相关文章:

java - 使用流关闭套接字

java - 拉取远程分支时在 JGit 中获取 InvalidConfigurationException

java - JGit推送不更新文件

git - 如何打印所有的 git commit 消息?

java - Autowiring 作为不同 bean 的子类的 Spring Bean

java - 如何提取子字符串(html)和另一个子字符串(将用于正则表达式)并将其全部放置在正确的格式中?

git - 如何使用jgit和apache ant任务克隆ssh远程存储库?

git - 使用 (J)Git 获取 GitHub 存储库描述

java - 非常简单的for循环错误Java

java - 让网络上的客户端发现服务器