java - 使用 Java 从本地克隆的 Git 存储库获取修改后的文件

标签 java git jgit

在克隆的 git 存储库中,我只想选择修改过的文件(即准备好提交的文件或如果我运行命令 显示为 'modified' 的文件>'git 状态')。我不想在日期更改比较时这样做,因为文件可能在一段时间内的任何一天都被修改过。

我需要文件名及其绝对文件路径的集合。

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.
}

关于java - 使用 Java 从本地克隆的 Git 存储库获取修改后的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55604766/

相关文章:

java - 组合数组索引

java - 每行仅打印 10 个输出

java - 由于部署到 IntegratedWebLogicServer 时出错,JDeveloper 无法运行应用程序

git - 特定构建配置的 Team City 未决更改不是默认分支

java - 在 JGit 中包含 StrictHostKeyChecking 来克隆 git 存储库

java - JBoss ESB Action 有生命周期吗?

Git 克隆并覆盖本地仓库

ruby-on-rails - 在新电脑上设置 Github

eclipse : "re-indexing repository workspace"或 "Computing Git status for repository workspace"

branch - 如何使用 JGit 创建 diff 分支?