Ветки

  • master — продакшен, только стабильные релизы
  • dev — активная разработка, любое количество коммитов
  • master ← dev

Основные правила

  • ❌ Не коммитить напрямую в master
  • ✅ Вся разработка ведётся в dev
  • ✅ В master попадает только готовый код
  • ✅ После каждого релиза синхронизировать dev с master

Первичная настройка (один раз)

bash
- git checkout master
- git pull
- git checkout -b dev
- git push -u origin dev

Ежедневная работа

Работаем только в dev:

bash
git checkout dev
git add .
git commit -m "feat: add hero slider fade"
git push

Количество коммитов и пушей не ограничено.

Релиз в продакшен

Когда код готов:

bash
git checkout master
git pull
git merge dev
git push

Создание тега релиза:

bash
git tag v1.0.0
git push origin v1.0.0

Синхронизация после релиза (обязательно)

bash
git checkout dev
git merge master

Это предотвращает конфликты и рассинхронизацию веток.

Хотфикс в продакшене

Если нужно срочно исправить баг:

bash
git checkout master

Правки

git commit -m "fix: critical production bug" git push

git checkout dev
git merge master

Чистый релиз (опционально)

Если в dev много WIP-коммитов:

bash
git checkout master
git merge --squash dev
git commit -m "release: v1.2.0"
git push

В master будет один аккуратный коммит.

Рекомендуемый формат коммитов

feat: новая функциональность
fix: исправление бага
refactor: переработка без изменения логики
chore: технические изменения
wip: незавершённая работа

Кратко (TL;DR)

  • Работа → dev
  • Релиз → merge в master
  • Пушей в dev — сколько угодно
  • master — только стабильный код
  • Использовать теги релизов