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

问题描述 投票:2回答:1

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

我需要使用其绝对文件路径收集文件名。

Java中是否有这样的git实用程序可用?或者更好的方法是什么?

java git jgit
1个回答
1
投票
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.
}

© www.soinside.com 2019 - 2024. All rights reserved.