java - 使用 Java 从本地克隆的 Git 存储库中获取修改后的文件
问题描述
在克隆的 git 存储库中,我只想选择已修改的文件(即,如果我运行命令'git status' ,准备提交或显示为'modified'的文件)。我不想在日期更改比较时这样做,因为文件可能在一段时间内的任何一天都被修改过。
我需要文件名的集合及其绝对文件路径。
Java中有没有这样的git实用程序可用?或者更好的方法是什么?
解决方案
import java.io.File;
import java.util.Set;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.Status;
import org.eclipse.jgit.api.errors.GitAPIException;
public class GitModifiedFileExtractor {
public static void main(String[] args) throws IllegalStateException, GitAPIException {
Git myGitRepo = Git.init().setDirectory(new File("C:\\myClonedGitRepo")).call();
Status status = myGitRepo.status().call();
Set<String> modifiedFiles = status.getModified();
for (String modifiedFile : modifiedFiles) {
System.out.println("Modified File - " + modifiedFile);
}
}
// Similarly we can get files - added, missing, removed, untracked, etc.,
// from status object.
}
推荐阅读
- swift - 禁止 NSCollectionView 中的箭头操作
- python - 协程可以在 Python 中产生值吗?
- java - 无法在同一实例中运行 jbpm 7.13.0 和 jboss 7
- javascript - Javascript - 改进嵌套的 if-else
- java - 在单个 SQL 语句中插入/更新/删除多个表
- php - 使用 mysqli 和 PHP 正确访问整行以进行数据库插入
- angularjs - 长索引(整数)的AngularJs ng-repeat抛出错误
- java - 如何限制python解释器的线程数?
- r - 2 系列 barplot ggplot2 或 Openair
- c# - 在 TopShelf 中使用异步 WhenStarted 和 WhenStopped 方法