Поддержка распределенной системы контроля версий Git появилась ещё в Delphi XE7 в 2014 году, однако на тот момент мне вполне хватало работы с TortoiseGit. Да и, чего греха таить, и сейчас достаточно. Однако рассмотреть вопрос работы с Git в Delphi стоит, хотя бы даже потому, что для кого-то возможность работы с Git из интерфейса RAD Studio может оказаться более удобной и эффективной, нежели использование сторонних утилит. Учитывая то, что с момента выхода Delphi XE7 прошло целых пять лет и, вполне возможно, что поддержка git в delphi могла измениться, сразу скажу, что всё, что будет написано ниже проверялось и тестировалось исключительно в Delphi 10.3 Rio Release 1 (Community Edition). Поэтому, если Вы используете более ранние версии Delphi, возможно, что какие-то настройки будут выглядеть немного по другому, нежели в статье.
1. Подготовка работы с Git в Delphi
Поддержка Git в Delphi не включена по умолчанию. Для того, чтобы вы смогли работать с Git из IDE Delphi необходима установка git на ваш компьютер. Делается это достаточно просто:
- Заходим на сайт git-scm.com и скачиваем последнюю версию Git под вашу ОС. В моем случае это была версия 2.21.0 под Windows x64.
- Устанавливаем Git. Директория установки по умолчанию «C:\Program Files\Git». Все настройки компонентов я оставил по умолчанию:
На втором шаге установщик попросит выбрать редактор по умолчанию для Git. Здесь я выбрал Notepad++:
Если после выбора редактора из списка кнопке «Next» будет не активна (см. рисунок выше), то вам необходимо будет скачать и установить выбранный редактор (окно установщика Git при этом можно не закрывать) и затем вернуться к установке Git.
На третьем шаге установщик попросит выбрать то, как вы планируете работать с git. Здесь я оставил настройку по умолчанию — через командную строку, а также через сторонние приложения:
На четвертом шаге необходимо выбрать какие библиотеки для SSL использовать. Здесь я, опять же, оставил настройку по умолчанию — использовать OpenSSL:
На пятом шаге необходимо выбрать стиль окончания строк. Оставляем как есть — использовать Windows-style:
На шестом шаге необходимо выбрать терминал для Git Bash — оставляем настройку по умолчанию — используем MinTTY:
На седьмом шаге вас спросят какие функции включить для Git — оставляем всё как есть:
После прохождения всех шагов Git начнет устанавливаться на ваш компьютер.
После установки можете сразу не запускать Git Bash — им мы воспользуемся позже.
2. Создаем свой репозиторий на github.com
В качестве примера, я рассмотрю процесс работы с git в delphi на примере github.com. О том, как клонировать существующий репозиторий — смотрите ниже.
2.1. Регистрируемся на github.com
Регистрация на github достаточно прозрачна и не вызовет затруднений. На первом шаге необходимо выбрать имя пользователя, указать email, пароль и разгадать простенькую каптчу:
На втором шаге вас попросят выбрать план. Так как мы только учимся — достаточно выбрать бесплатный вариант:
На третьем шаге необходимо указать свой опыт работы, кто вы, откуда и т.д. и т.п. после чего вас попросят подтвердить свой email.
После того, как вы подтвердите свой email вас отправят на стартовую страницу github’a где вы можете создать свой проект, репозиторий или почитать гайды по работе с github:
2.2. Создаем репозиторий
Кликаем по кнопке «Start Project» (см. рисунок выше). На открывшейся страничке вас попросят ввести имя нового репозитория, его описание и указать другие настройки. Я задал следующие настройки:
- Название репозитория: git-delphi
- Описание: «Публичный репозиторий для тестирования доступа к Git из Delphi»
- Настройки приватности: Public
- Initialize this repository with a README: ставим чекбокс
- настройка .gitignore: Delphi (чтобы не сливать в репозиторий лишние файлы типа *.local, *.exe и т.д. — в дальнейшем этот файл можно отредактировать)
- Лицензия: None.
Все перечисленные настройки показаны на рисунке ниже:
После того как вы нажмете на кнопку «Create repository» вас перенаправят на главную страницу вашего репозитория. У меня она выглядит вот так:
3. Клонируем репозиторий на свой компьютер
3.1. Настраиваем Delphi для работы с Git
Для того, чтобы Delphi начала работать с Git необходимо указать ей необходимые настройки. Для этого заходим в Delphi в следующие настройки:
Tools -- Options -- Version Control -- Git
и указываем путь к файлу git.exe:
а также свой логин и адрес email на который был зарегистрирован репозиторий на github’е.
Также можете настроить другие опции работы с Git. Все прочие настройки кроме пути к git.exe, логина и email я оставил по умолчанию.
3.2. Копируем репозиторий
Для работы с репозиторием Git в Delphi мы будем HTTPS. Для того, чтобы клонировать репозиторий на свой компьютер необходимо в Delphi выбрать пункт меню:
File -- Open From Version Control
Далее указываем систему контроля версий — Git:
На следующем шаге Delphi попросит указать URL репозитория и директорию в которую необходимо клонировать репозиторий с github. Адрес репозитория на github необходимо указывать тот, который начинается на HTTPS. Для этого заходим в свой репозиторий на github.com справа находим кнопку «Clone or Download», наживаем её. Откроется небольшое окно с адресом — в нем необходимо выбрать пункт «Use HTTPS»:
Здесь же появится URL вашего репозитория, который необходимо скопировать в буфер обмена. Например, мой тестовый репозиторий имеет следующий адрес:
https://github.com/WDTesting/git-delphi.git
Возвращаемся в Delphi, указываем полученный адрес репозитория на github и говорим куда клонировать:
После нажатия кнопки «Ok» начнется процесс клонирования репозитория. Так как мы создали публичный репозиторий, то на этом шаге Delphi не будет спрашивать у нас логин и пароль:
Процесс клонирования пройдет достаточно быстро, так как репозиторий пока пустой, но, можно посмотреть детали клонирования, нажав кнопку «More details»:
Теперь в директории на компьютере появятся: скрытая папка .git, а также два файла: Readme.md и .gitignore:
На этом, процесс клонирования можно считать законченным. Перейдем к следующему шагу — отправим в наш репозиторий проект «Hello, world!»
4. Отправляем проекты Delphi в Git
Создаем новый проект в Delphi и сохраняем его в отдельную папку в директории с локальной копией нашего репозитория. Должно получиться как-то так:
При этом, папка HelloWorld содержит все файлы, которые создала Delphi, включая скомпилированный exe-шник:
4.1. Выполняем команду «Commit».
Для того, чтобы выполнить commit в delphi необходимо в окне Project Manager выбрать наш проект, кликнуть правой кнопкой мыши и в контекстном меню выбрать:
"Git - Commit"
В подменю выбираем пункт «From Repository Root«. Откроется новое окно IDE для коммита в репозиторий. Если вы всё сделали так, как сказано выше, то окно не будет содержать никаких файлов:
Окно пустое, так как ещё ни один файл не был зафиксирован в репозитории. Выполняем следующие действия:
- В нижней части окна чекаем чекбокс «Show unversioned files» — появится список файлов для фиксации (обратите внимание, что это будут далеко не все файлы, созданные Delphi, так как часть файлов будет проигнорирована в соответствии с тем, что написано в файле .gitignore)
- Выбираем в списке файлы для commit’а
- Обязательно заполняем поле «Comment» иначе кнопка «Commit» будет неактивна
После выполнения всех вышеприведенных процедур окно Commit стало выглядеть у меня вот так:
Теперь жмем кнопку «Commit» и файлы будут зафиксированы в локальной копии репозитория, а delphi выведет в окне Messages соответствующее сообщение:
4.2. Отправляем изменения в репозиторий на github.com
Теперь можно выполнить отправку всех изменений из Delphi в наш репозиторий на github.com. Для этого снова кликаем в Project Manager правой кнопкой мыши на нашем проекте и выбираем пункт меню:
Git -- Push -- From Repository Root
После выбора этой команды Delphi покажет окно для ввода логина и пароля:
Можете сразу сохранить логин/пароль, чтобы не вводить их каждый раз при выполнении команд, требующих аутентификацию в Git.
Вводим логи/пароль и жмем «Ok». После этого Delphi немного «призадумается», установит связь с репозиторием на github и выполнит команду push, сообщив нам в Messages, что связь с веткой master установлена:
Теперь можно зайти в свой репозиторий на github и убедиться, что наш проект HelloWorld находится в репозитории:
5. Получаем изменения из Git в Delphi
С репозиторием Git может работать множество людей и вам необходимо получать изменения сделанные другими разработчиками в проекте. Для этого необходимо воспользоваться в Delphi командой git pull.
Здесь всё так же, как и с командой commit: в Project Manager выбираем проект, кликаем правой кнопкой мыши, затем выбираем в меню команду:
Git - Pull - From Repository Root
и ожидаем окончания операции.
6. Получения лога операций с Git
По всем операциям в репозитории Git можно получить лог в Delphi. Делается это также через контекстное меню проекта в Project Manager. Например, на рисунке ниже показан лог изменений по всему репозиторию:
Git - Show Log - From Repository Root
А теперь получим изменения в папке с текущим проектом:
Git - Show Log - From Project Directory
Также, все операции c файлами и их отправке в git фиксируются в History. Например, ниже показаны различия в локальной копии файла main.pas проекта HelloWorld и его копии в репозитории на github:
7. Возможные ошибки при работе с Git в Delphi
Вполне возможно, что при первом знакомстве с Git в Delphi вы можете столкнуться с некоторыми трудностями. Ниже я представлю некоторые возможные ошибки и способы их устранения.
Ошибка «Unknown user name» при попутке выполнить commit в репозиторий Git из Delphi
Причина: в настройках Delphi не указаны Ваш логин и email.
Решение: заходим в Delphi в настройки:
Tools -- Options -- Version Control -- Git
и указываем логин и email для работы с репозиторием.
Ошибка «Git client has not been properly configured»
Причина: в настройках Delphi не указан путь к файлу git.exe.
Решение: если Git установлен на компьютере, то заходим в меню Delphi:
Tools -- Options -- Version Control -- Git
и указываем путь к файлу git.exe.
Если Git не установлен, то устанавливаем его как показано выше, после чего указываем в Delphi путь к git.exe.
В принципе, представленных выше моментов работы с Git в Delphi будет вполне достаточно для того, чтобы начать использовать эту систему контроля версий для своей дальнейшей работы над проектами. Ради интереса можете клонировать себе на компьютер рассмотренный выше репозиторий или, например, репозиторий с исходниками блога webdelphi ссылку на который вы можете получить здесь.
Спасибо огромное, инструкция, как говорится «для самых маленьких».
П.С. Тут принято писать такие комментарии или если не по сути — лучше и не писать :)?