Как вывести данные о git в java?

Пользователь

от greyson , в категории: Другие , 7 месяцев назад

Как вывести данные о git в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от magdalen_kub , 7 месяцев назад

@greyson 

Для вывода данных о git в Java можно использовать библиотеку JGit. Вот пример кода, который выводит информацию о текущей ветке и последнем коммите:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.lib.RepositoryBuilder;
import org.eclipse.jgit.revwalk.RevCommit;
import org.eclipse.jgit.revwalk.RevWalk;
import org.eclipse.jgit.revwalk.filter.RevFilter;
import org.eclipse.jgit.transport.FetchResult;

import java.io.IOException;
import java.util.List;

public class GitInfo {
    public static void main(String[] args) {
        try {
            Repository repo = new RepositoryBuilder().findGitDir().build();
            Git git = new Git(repo);
            
            // Вывод информации о текущей ветке
            String branch = git.getRepository().getBranch();
            System.out.println("Текущая ветка: " + branch);

            // Вывод информации о последнем коммите
            RevWalk walk = new RevWalk(repo);
            RevCommit commit = walk.parseCommit(repo.resolve("HEAD"));
            System.out.println("Последний коммит:");
            System.out.println("Коммит: " + commit.getId().getName());
            System.out.println("Автор: " + commit.getAuthorIdent().getName());
            System.out.println("Дата: " + commit.getAuthorIdent().getWhen());
            System.out.println("Сообщение: " + commit.getShortMessage());

            // Закрываем ресурсы
            walk.close();
            git.close();
        } catch (IOException | GitAPIException e) {
            e.printStackTrace();
        }
    }
}


Примечание: Для использования данного кода вам понадобится добавить зависимость на JGit в свой проект Maven или Gradle.