Skip to content

Commit

Permalink
Уточнён перевод, исправлены ошибки и примеры кода
Browse files Browse the repository at this point in the history
  • Loading branch information
Morganov committed Mar 21, 2020
1 parent b3d018d commit 656b242
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 55 deletions.
17 changes: 7 additions & 10 deletions book/B-embedding-git/sections/jgit.asc
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,13 @@

(((jgit)))(((java)))
Если вы хотите использовать Git из Java-программ, существует библиотека для работы с Git, называемая JGit.
Она достаточно полно реализует функциональность Git и написана полностью на Java.
Эта библиотека получила широкое распространение в Java-мире.
Она достаточно полно реализует функциональность Git, написана на чистом Java и широко используется Java сообществом.
Проект JGit находится под опекой Eclipse и расположен по адресу http://www.eclipse.org/jgit[].

==== Приступая к работе

Существует несколько способов добавить JGit в проект и начать писать код с использованием предоставляемого API.
Возможно, самый простой путь -- использование Maven.
Подключение библиотеки происходит путём добавления следующих строк в секцию `<dependencies>` в вашем pom.xml:
Возможно, самый простой путь -- использование Maven: подключение библиотеки происходит путём добавления следующих строк в секцию `<dependencies>` в вашем pom.xml:

[source,xml]
----
Expand Down Expand Up @@ -46,6 +44,7 @@ java -cp .:org.eclipse.jgit-3.5.0.201409260305-r.jar App
// Создание нового репозитория; директория должна существовать
Repository newlyCreatedRepo = FileRepositoryBuilder.create(
new File("/tmp/new_repo/.git"));
newlyCreatedRepo.create();
// Открыть существующий репозиторий
Repository existingRepo = new FileRepositoryBuilder()
Expand Down Expand Up @@ -129,7 +128,7 @@ Git git = new Git(repo);
----

В классе Git можно найти отличный набор высокоуровневых "текучих" методов (builder-style / fluent interface).
Давайте взглянем на пример -- результат выполнения этого кода смахивает на `git ls-remote`:
Давайте взглянем на пример -- результат выполнения этого кода напоминает `git ls-remote`:

[source,java]
----
Expand All @@ -145,9 +144,8 @@ for (Ref ref : remoteRefs) {
}
----

Тут показан частый случай использования класса Git: методы возвращают тот же объект, на котором вызваны, что позволяет чередовать их друг за другом, устанавливая параметры.
Финальный аккорд -- непосредственное выполнение команды с помощью метода `.call()`.
В этом примере мы запрашиваем список тегов (но не "головы" веток) с удалённого репозитория `origin`.
Тут показан частый случай использования класса Git: методы возвращают тот же объект, на котором вызваны, что позволяет чередовать их друг за другом, устанавливая параметры, а выполнение происходит при вызове `.call()`.
В этом примере мы запрашиваем с удалённого репозитория `origin` список тегов, исключая ветки.
Обратите внимание на использование класса `CredentialsProvider` для аутентификации.

Множество команд доступно в классе Git, включая такие как `add`, `blame`, `commit`, `clean`, `push`, `rebase`, `revert`, `reset` и другие.
Expand All @@ -159,5 +157,4 @@ for (Ref ref : remoteRefs) {

* Официальная документация по JGit API доступна в Интернете на http://download.eclipse.org/jgit/docs/latest/apidocs[].
Это обыкновенный Javadoc, так что ваша любимая IDE может скачать её и использовать оффлайн.
* "Поваренная книга" JGit, расположенная по адресу https://github.com/centic9/jgit-cookbook[] включает в себя много готовых "рецептов" использования JGit для решения тех или иных задач.
* Вопрос на StackOverflow http://stackoverflow.com/questions/6861881[] содержит несколько полезных ссылок.
* "Поваренная книга" JGit, расположенная по адресу https://github.com/centic9/jgit-cookbook[], включает в себя много готовых "рецептов" использования JGit для решения тех или иных задач.
Loading

0 comments on commit 656b242

Please sign in to comment.