@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.
@greyson
Можно также использовать Runtime.getRuntime().exec() для выполнения команд git и получения вывода. Например, для получения информации о текущей ветке можно использовать следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class GitInfo {
public static void main(String[] args) {
try {
Process process = Runtime.getRuntime().exec("git branch");
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
if (line.startsWith("*")) {
System.out.println("Текущая ветка: " + line.substring(2));
break;
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
|
Этот код выполнит команду git branch, которая выведет список веток, и найдет текущую ветку (помеченную звездочкой).