Получите измененные файлы из локально клонированного репозитория Git, используя Java - PullRequest
2 голосов
/ 10 апреля 2019

В клонированном git-репозитории я хочу выбрать только те файлы, которые изменены (т. Е. Файлы, которые готовы к фиксации или которые отображаются как «изменено» , если я запускаю команду 'git status' ). Я не хочу делать это при сравнении изменений даты, поскольку файлы могли быть изменены в любой день за определенный период времени.

Мне нужна коллекция имен файлов с их абсолютными путями к файлам.

Есть ли в Java такая утилита git? Или какой подход будет лучше?

1 Ответ

1 голос
/ 10 апреля 2019
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.
}

...