java - jgit - 基于文件扩展名的 git diff

标签 java git jgit

我正在使用 JGit API ( https://www.eclipse.org/jgit/ ) 访问 git 存储库。

在 git 存储库中,我还存储 .txt 文件和其他文件格式。我遇到了一个要求,我应该只获取 .txt 文件的差异。

基本上我正在努力实现相当于

git diff master HEAD -- '*.txt'  

How to filter git diff based on file extensions?使用 JGit API。

从这个答案,(Equivalent of git diff in JGit)我明白了如何获得正常的差异。但我想向其添加文件扩展名限制,但我在 DiffCommand 文档(https://download.eclipse.org/jgit/site/5.2.0.201812061821-r/apidocs/index.html)中看不到任何内容。

谁能给点指点吗?

最佳答案

如果您按照 Equivalent of git diff in JGit 中的建议使用 DiffFormatter ,您可以像这样指定一个树过滤器:

TreeFilter treeFilter = PathSuffixFilter.create(".txt")

DiffFormatter diffFormatter = ...
diffFormatter.setPathFilter(treeFilter);

该示例使用 PathSuffixFilter 来排除以 .txt 结尾的文件。

关于java - jgit - 基于文件扩展名的 git diff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54008247/

相关文章:

java - 关于 String 的 replaceAll 方法的困惑

Java 高效覆盖透明组件

java - 选择/突出显示属于 JOptionPane 的 JTextArea 中的文本

git - 有没有办法将提交与 git 项目分开传输?

java - Tomcat JDBC 连接池是否在实例之间共享?

Github 样式在命令行上拆分差异

git - 在 Git 中仅在一个目录中提交更改

java - 如何在裸存储库中使用 JGit 暂存文件?

git - 使用私有(private) BitBucket 存储库进行身份验证以使用 JGit 进行克隆

jgit - 使用 JGit 显示没有父提交(第一次提交)的更改/差异