Что делать с релизной веткой после переноса из неё данных на production?

«Что делать с релизной веткой после переноса из неё данных на production?» — вопрос из категории DevOps, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

После успешного деплоя кода из релизной ветки в production, я завершаю цикл разработки, следуя принятому в команде Git workflow (чаще всего Git Flow или его упрощенной версии).

Типичная последовательность действий:

  1. Мерж релизной ветки в main (master): Все финальные коммиты, включая возможные последние исправления версий (version bumps), уже находятся в релизной ветке. Ее нужно влить в основную ветку.

    git checkout main
    git pull origin main
    git merge --no-ff release-1.5.0  # --no-ff создает merge commit для истории
    git push origin main
  2. Создание тега: Тег отмечает точную версию кода, которая находится в production. Это критически важно для возможности отката и четкой идентификации версий.

    git tag -a v1.5.0 -m "Release version 1.5.0: Добавлена панель аналитики"
    git push origin v1.5.0
  3. Удаление релизной ветки: После мержа и создания тега ветка больше не нужна.

    # Удаление локальной ветки
    git branch -d release-1.5.0
    # Удаление ветки на удаленном репозитории (GitHub/GitLab)
    git push origin --delete release-1.5.0
  4. Обновление ветки разработки (develop): Если используется Git Flow, необходимо также влить изменения из main обратно в develop, чтобы она содержала все актуальные фиксы.

    git checkout develop
    git pull origin develop
    git merge main
    git push origin develop

Важное замечание: В некоторых командах релизную ветку не удаляют сразу, а оставляют на случай срочных hotfix-ов для этой конкретной версии. После внесения всех hotfix-ов ветку все равно удаляют. Решение зависит от соглашений в команде.