Feature Branch Workflow — это подход к командной разработке, при котором каждая задача выполняется в отдельной ветке. Самый популярный рабочий процесс в современных командах.
Проблема без веток
Представьте команду из трёх разработчиков, все работают в main:
Утро:
Иван — добавляет форму входа
Мария — исправляет баг в корзине
Алексей — делает новую страницу
Обед:
Иван пушит → ломает код Марии
Мария пушит → конфликт с Иваном
Алексей смотрит на хаос → не может работать
Результат: никто не может нормально работать, main постоянно сломан.
Решение: каждая задача — отдельная ветка
main ──────────────────────────────────────────→
Иван: feature/login
──●──●──●──●──→ PR → merge
Мария: fix/cart-bug
──●──●──→ PR → merge
Алексей: feature/catalog
──●──●──●──→ PR → merge
Каждый работает независимо. main стабилен и всегда готов к деплою.
Полный цикл работы
1. Начните с актуального main
git checkout main
git pull origin main # получить последние изменения
В GitHub Desktop: переключитесь на main → Fetch origin → Pull.
2. Создайте ветку
git checkout -b feature/user-profile
В GitHub Desktop: Branch → New Branch → назовите ветку.
Правила именования:
| Тип | Шаблон | Пример |
|---|---|---|
| Новая функция | feature/название |
feature/user-profile |
| Исправление | fix/название |
fix/login-crash |
| Документация | docs/название |
docs/api-guide |
| Рефакторинг | refactor/название |
refactor/auth-module |
3. Работайте и коммитьте
# Сделали часть работы
git add .
git commit -m "feat: добавлена страница профиля"
# Ещё изменения
git commit -m "feat: загрузка аватара"
# Исправили что-то
git commit -m "fix: валидация имени пользователя"
4. Запушьте ветку
git push origin feature/user-profile
В GitHub Desktop: Push origin (или Publish branch при первом push).
5. Создайте Pull Request
На GitHub появится баннер «Compare & pull request». Нажмите.
Заполните описание:
- Что сделано
- Зачем
- Как проверить
6. Пройдите код-ревью
Ревьюер смотрит код, оставляет комментарии.
Вы вносите правки, пушите → PR обновляется.
7. Merge и удаление ветки
После Approve: Merge pull request → Delete branch.
# Локально: переключитесь на main и обновите
git checkout main
git pull origin main
git branch -d feature/user-profile # удалить локальную ветку
Несколько задач параллельно
Главная сила Feature Branch — можно вести несколько задач одновременно:
# Работаете над фичей входа
git checkout feature/login
# Пришёл срочный баг — переключаетесь
git checkout main
git checkout -b fix/critical-bug
# Починили баг, смёрджили через PR
# Возвращаетесь к фиче входа — ничего не потеряно
git checkout feature/login
Без веток вам бы пришлось откатывать незаконченную работу.
Жизненный цикл ветки
Создана от main → Работа → PR → Ревью → Merge → Удалена
↑ ↓
└──────────── Правки по ревью ←───────────────┘
Ветка живёт ровно столько, сколько нужна. После merge — удаляется.
Что если main обновился пока я работал?
Другой разработчик смёрджил PR, пока вы работали в своей ветке.
Нужно обновить свою ветку:
git checkout feature/my-feature
git merge main # влить обновления из main в вашу ветку
В GitHub Desktop: Branch → Update from default branch.
Если возникнет конфликт — см. статью Разрешение конфликтов.
Правила хорошего тона
Маленькие ветки ✅
feature/add-email-field → 50 строк изменений → 1 час ревью
vs
feature/redesign-everything → 3000 строк → ревьюер плачет
Маленькие PR мёрджат быстрее. Большие «висят» неделями.
Одна задача — одна ветка ✅
# Хорошо: каждая задача в своей ветке
feature/add-login
feature/add-registration
fix/password-validation
# Плохо: всё в одной ветке
feature/auth-system # и login, и registration, и fix, и рефакторинг...
Актуальное название ветки ✅
По имени ветки должно быть понятно что там:
✅ feature/user-avatar-upload
✅ fix/cart-total-calculation
❌ my-branch
❌ test
❌ new-stuff
Feature Branch в разных командах
GitHub Flow (простой)
main → feature branch → PR → merge в main → деплой
Используется в большинстве небольших команд и open source проектов.
Git Flow (сложный)
main → develop → feature → develop → release → main
Используется в командах с чёткими релизными циклами.
Для начала учёбы и большинства проектов GitHub Flow достаточно.
Итог
Feature Branch Workflow — это:
- Изоляция — каждая задача в своей ветке
- Стабильность —
mainвсегда работает - Ревью — код проверяется перед merge
- История — понятно что и когда добавлено
Именно этот подход используют в большинстве IT-компаний мира — от небольших стартапов до Google и Microsoft.
💬 Comments (0)
No comments yet
Be the first to share your opinion about this article!