PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Как код из main попадает в ветку release?

Продвинутые темы

Код из main в ветку release попадает через ветвление (`git branch`/`checkout`) от main, слияние (merge/PR) или cherry-pick конкретных коммитов, в зависимости от стратегии релизов (Git Flow и др.).

Способы

Создание release-ветки от main

Ответвить release от актуального main:

git checkout main
git pull
git checkout -b release/1.2.0  # release содержит весь код main

Весь код main попадает в release при создании ветки.

Слияние (merge)

Влить main в release (или наоборот):

git checkout release/1.2.0
git merge main   # добавить свежие изменения main

Cherry-pick (выборочно)

Перенести конкретные коммиты из main в release (для хотфиксов/отдельных фич):

git checkout release/1.2.0
git cherry-pick <hash>   # перенести один коммит

Через Pull Request

Merge Request/PR из main в release с ревью и CI.

Стратегии релизов

Git Flow

  • main/develop → release/* ветка → тестирование → merge в main + tag.

Trunk-based

  • Всё в main; релиз — тег или короткоживущая release-ветка.

GitHub Flow

  • main всегда деплоится; релиз — тег/деплой из main.

Как выбирать

  • Весь код → ответвить release от main.
  • Отдельные фиксы → cherry-pick.
  • Регулярная синхронизация → merge.

Коротко для собеседования

Код из main в release попадает: ответвлением release-ветки от main (весь код), слиянием (git merge main — свежие изменения), cherry-pick (git cherry-pick <hash> — конкретные коммиты для хотфиксов) или через PR с ревью/CI. Зависит от стратегии: Git Flow (release-ветка), trunk-based/GitHub Flow (тег из main).

Другие вопросы раздела