Лучшие практики

Используй ветки для задач

Создавай новую ветку для каждой новой возможности или исправления ошибки, вместо того чтобы писать код прямо в ветке main.

Ветка для задачи (feature branch) — это любая ветка, созданная для работы над конкретной новой возможностью или для исправления определённой ошибки.

Сливай ветки для задач в main, только когда задача полностью готова и протестирована. Так работа остаётся изолированной, а управлять изменениями становится проще. При таком подходе ветка main всегда содержит стабильный код, готовый к релизу.


Представь: нужно добавить авторизацию через Facebook в клиентское приложение.

Плохо
  1. Работа над задачей начинается сразу, коммиты идут прямо в ветку main. К концу дня накапливается несколько коммитов с частично готовой авторизацией.
  2. Внезапно звонит начальник и просит немедленно исправить критическую ошибку в текущей системе логина и сразу же выкатить релиз.
  3. Само исправление элементарное, но если выпустить релиз сейчас, наполовину готовый код авторизации через Facebook тоже уйдёт в продакшен. Упс!
При работе в команде всё становится ещё хуже. Представь, что все пишут код в ветке main: сырые наработки разных разработчиков смешиваются в кучу. В итоге невозможно понять, что готово к релизу, а что нет. Это приводит к хаосу, сломанным билдам и впустую потраченному времени.
Хорошо
  1. Создаётся новая ветка feature/facebook-login (или с любым другим названием), и вся работа идёт в ней. Коммиты попадают в эту ветку, а main остаётся чистой и стабильной.
  2. Прилетает внезапная ошибка? Просто переключаемся на main, создаём ещё одну ветку bugfix/login-issue и правим ошибку там. После тестирования эта ветка сливается обратно в main. Релиз выкачен, все счастливы.
  3. Переключаемся обратно в ветку feature/facebook-login, выполняем git rebase, чтобы подтянуть последние изменения из main в свою ветку, и продолжаем работу над авторизацией. Когда всё готово, сливаем ветку в main.