Git: Как правильно работать

Енот на дереве читает

При работе с удаленным репозиторием Git, вам необходимо придерживаться регламента, чтобы возникало меньше конфликтов при merg’ах, легче было отслеживать и дебажить ошибки.

Основные ветки

Существет две основные ветки:

  • Main или master: production-ветка, которая всегда должна быть стабильной и содержать готовый к развертыванию код. 
  • Dev: ветка для разработки и тестирования

Релизные ветки

Также рекомендую отслеживать версии вашего приложения/сервиса/т.д. и создавать релизные ветки.

Такие ветки в случае критических проблем (например, упал прод и быстро пофиксить не получается) помогают быстро восстановить последнюю рабочую версию, чтобы ваш production не лежал, пока вы исправляете проблемы.

Обычно такие ветки именуются по принципу: release-1.0.0.

Где первая цифра это новые изменения, которые не совместимы с предыдущим кодом, вторая — это была создана новая, крупная фича, а третья — это исправленые баги.

Типы веток для разработки

  • feature/имя-фичи *
  • bugfix/имя-багфикса * 
  • hotfix/имя-фикс-вашей-проблемы *

* Название рекомендуется делать лаконичным и отражающим суть задачи.

Например: создаем форму заявки, ветка — feature/newOrderForm 

Описание веток

feature/*name* — ветка для создания/внедрения нового функционала (или логики) (например: Разработали компонент квиза)

bugfix/*name* — ветка для исправления не критичных багов, которые не ломают приложение (например: на мобильных устройствах текст наезжает на заголовок)

hotfix/*name* — ветка для исправления критичных багов, которые ломают работы приложения на production (например: перестала отправляться форма заявки, в мобильной версии уезжает кнопка отправки формы)

Процесс создания веток

Основная работа ведется с ветками feature/*name* и bugfix/*name* эти ветки всегда создаются от dev ветки.

Экстренная работа ведется с ветками hotfix/*name* и эти ветки всегда создаются от актуальной main (или master) ветки.

Рецензирование кода

  • Pull Request (PR) в релизную ветку создает лид
  • Комментарий к коммиту должен быть полный: что конкретно было реализовано (плохо: Поправил баги. хорошо: исправил ошибку отправки формы в шаблоне кейса)
  • Для каждой подзадачи создаем отдельный коммит (например: задача реализовать форму отправки заявки. Создали обработчик валидации — закоммитили и запушили, создали форму и верстку — закоммитили и запушили. И т.д)

Итог

По опыту работы, такая система поначалу кажется сложной и излишней, особенно на маленьких проектах.

Но это как тренировка для спортсмена, когда вы попадете в большой проект, вам будет легко, так как вы уже работали по такой системе.

У вас будет меньше проблем конфликтов при merg’ах файлов и в целом совместной работе в команде, будет легче откатывать изменения при необходимости и «вырезать» ненужные коммиты.

Tasty Coffee

Консультация

Оставьте заявку на консультацию

Отправляя заявку, вы соглашаетесь с политикой конфиденциальности

О проекте

Расскажите о проекте, чтобы я мог подготовить предварительное предложение

Отправляя заявку, вы соглашаетесь с политикой конфиденциальности