我写了一个Java程序,我用的是jgit。在这个 Java 程序中,我想列出某个 git 存储库 g
的所有提交,这些提交至少更改了目录 x
中的一个文件。
我不想在“命令行”中解决问题,而是在 Java 中解决。
最佳答案
在JGit 的高级API 中你可以使用Git.log()使用“addPath”获取相关提交的简单列表。
logs = git.log()
.addPath("pom.xml")
.call();
查看此 snippet在jgit-cookbook一个准备运行的例子。
一般来说入门类的方法Git提供与常规 git 命令类似的功能。
对于提供更细粒度控制/结果的低级 API,您可以使用 Git.diff()与“newTree”和“oldTree”和“pathFilter”。这些树是通过 RevWalk 构建的和 CanonicalTreeParser
jgit-cookbook 中有此方法的相关片段在 ShowFileDiff.java
关于java - 从 Java 中查找所有更改给定目录的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75039051/