Про работу с Git
Oleg991В продолжение статьи о том как стать iOS-разработчиком рассказываю про систему контроля версий (Git).
Git используется в работе постоянно. Для работы с гитом я использую GitHub Desktop и Fork - удобные программы на мой взгляд, которые мне позволяют избежать необходимости использования терминала в 99.9% случаев.
Что такое Git
Git - это распределенная система управления версиями, позволяющая разработчикам отслеживать изменения в коде, совместно работать над проектами и управлять историей изменений.
GitHub, в свою очередь, является платформой для размещения Git-репозиториев, облегчающей совместную работу над проектами. Гитхаб взял для примера, потому что код для большинства моих статей про iOS находится именно в гитхабе, но есть и другие платформы, например GitLab.
GitHub Desktop
Что я делаю при помощи этой программы:
- Создание репозитория для проекта - эту фичу в последние недели не использовал ни разу, а обычно применяю при изучении чего-то нового, когда хочу сделать отдельный проект под какую-то тему. Репозиторий является хранилищем файлов проекта
- Клонирование репозитория - тоже редко использую, но на рабочем проекте это первое, что нужно сделать при прочтении документации. Чаще всего у команды есть инструкция (
README.md), где написано по шагам все, что нужно сделать для первого запуска проекта. - Управление ветками - база, которую в работе нужно применять регулярно. Об этом следующий раздел
Ветки в гите
Ветка является отдельной версией проекта, в которой можно делать что-то новое, и это не будет доступно остальным, пока они не зайдут в эту ветку, или пока эта ветка не будет влита в главную ветку.
С ветками обычно делают такие операции:
- создают новую ветку для работы над задачей
- подгружать в свою ветку изменения из другой ветки (из общей, например), попутно исправляя конфликты
- делают коммиты в свою ветку и отправляют (пушат) их в гит
Что такое коммит
Коммит - это фиксация изменений в коде проекта. Когда мы вносим изменения в файлы своего проекта (например, перекрашиваем кнопку в своей отдельной ветке) и считаем, что эти изменения должны быть сохранены, мы делаем коммит.
Коммит позволяет сохранить состояние проекта на определенный момент времени, что делает возможным отслеживание истории изменений, возврат к предыдущим версиям кода и совместную работу с другими разработчиками.
При создании коммита нужно добавить комментарий, описывающий суть внесенных изменений. Этот комментарий помогает другим разработчикам (и нам самим в будущем) понять, какие изменения были внесены и почему. Кроме того, коммиты позволяют разработчикам легко вернуться к определенной точке в истории проекта, если это необходимо.
Отправляем изменения в гит
Итак, работа над задачей закончена, все коммиты сделаны, теперь их можно отправить в гит, чтобы остальные разработчики получили доступ к этому коду. Для этого нужно сделать пуш (push).
Получаем изменения из гита
Можно сделать фетч (fetch), чтобы узнать, сколько коммитов добавилось с момента предыдущего обновления проекта на твоем девайсе.
Потом можно сделать пулл (pull), чтобы скачать себе все обновления проекта для выбранной сейчас ветки.
Когда нужен терминал
Я использую терминал в тех редких случаях, когда что-то пошло сильно не по плану и нужно откатить неудачный ребейз - за прошедшие год такое было пару раз.
Хорошая новость
Все стандартные операции с гитом можно выполнять прямо в Xcode через пункт меню Integrate, но мне больше нравится UI в Github Desktop.
Заключение
Про гит можно рассказывать много интересного, но главное - найти подход, который решает все твои задачи без особых усилий, и пользоваться этим подходом. Нет никаких правил типа "использовать только терминал/командную строку для работы с гитом" - это бесполезные ограничения, и абсолютная вкусовщина.
Иногда мне все же приходится залезть в терминал, и об этом я пишу в телеграм с тегом #terminal.
Для 99% случаев я использую в работе Github Desktop, и иногда использую Fork, когда работаю с сабмодулем. Обе программы на момент написания статьи бесплатные.