Git для командной разработки
Для чего модуль
Сделать git-процесс команды предсказуемым: чистая история изменений, понятные PR и безопасные релизы без хаотичных «пожаров».
Результат после прохождения
- Вы уверенно работаете с rebase/merge/revert/cherry-pick/reflog в реальных сценариях.
- Вы организуете PR-процесс, который повышает качество кода, а не тормозит поставку.
- Вы умеете проводить релиз и hotfix с минимальным риском для production.
- Вы знаете, как восстанавливаться после ошибок в истории и релизе.
Термины и аббревиатуры
| Термин | Коротко |
|---|---|
Trunk-based | Короткие ветки + частый merge |
Rebase | Перенос коммитов на новую базу |
Merge | Объединение веток |
Revert | Отмена коммита отдельным коммитом |
Protected branch | Защищенная ветка с правилами |
Фокус по грейдам
Junior: понимать базовые механики и объяснять их простыми примерами.Middle: применять тему в продуктовых сценариях с учетом рисков и ограничений.Senior: управлять архитектурными trade-offs, метриками и эволюцией решения.
Как работать с модулем
- Все команды отрабатывайте в учебном репозитории с имитацией командной работы.
- Для каждого сценария фиксируйте: цель, риски, безопасный путь и rollback.
- После урока добавляйте в командный runbook обновленный playbook.
Программа модуля
Урок 1. Командный workflow и модель ветвления
Цель: выбрать ветвление и правила PR под контекст команды.
Модели ветвления
- Trunk-based (короткие ветки, частые merge).
- GitFlow-подобный подход (release/hotfix ветки).
- Гибрид для продуктовых команд с регулярными релизами.
Что важно, кроме схемы
- Размер PR и SLA ревью.
- Политика protected branches.
- Правила именования веток и сообщений коммитов.
Где ломается в проде
- Большие долгоживущие ветки с постоянными конфликтами.
- «Срочные» merge в main без quality gates.
- Нет договоренности, когда использовать rebase/merge.
Мини-задача (обязательная)
Опишите git workflow вашей команды: ветки, PR-правила, quality gates, release/hotfix путь.
Что спросит интервьюер: какой workflow вы выбрали и почему он подходит вашей команде.
Критерий готовности по уроку: вы можете показать workflow как систему управления риском, а не просто набор команд.
Урок 2. Rebase, merge и работа с конфликтами
Цель: управлять историей изменений и конфликтами без потери данных.
Когда что использовать
- Rebase — для линейной локальной истории перед PR.
- Merge — когда нужна явная фиксация объединения веток.
- Revert — для безопасного отката в shared history.
Конфликты: безопасный алгоритм
- Понять бизнес-смысл конфликтующего кода.
- Разрешить конфликт, сохраняя инварианты и тесты.
- Проверить интеграцию целиком, а не только конфликтный файл.
Где ломается в проде
- Force-push в shared ветку без договоренности.
- «Механическое» разрешение конфликтов без понимания контекста.
- Попытка исправить всё через hard reset в рабочем репозитории команды.
Мини-задача (обязательная)
Симулируйте 2 конфликтных сценария и сделайте разбор: причина, шаги решения, как избежать повтора.
Что спросит интервьюер: как вы действуете при с ложном merge-конфликте в критичной фиче.
Критерий готовности по уроку: вы можете восстановить корректную историю и код после конфликта без потери функциональности.
Урок 3. Pull Request как инженерный артефакт
Цель: сделать PR каналом качества, а не формальностью.
PR quality framework
- Ясный контекст: что меняется и зачем.
- Границы изменения: что входит/не входит.
- Доказательства: тесты, скриншоты, метрики, миграции.
Review, который работает
- Фокус на рисках и регрессиях.
- Разделение блокирующих и неблокирующих комментариев.
- Review checklist для критичных зон (security, data, perf).
Где ломается в проде
- Огромные PR, которые никто не может проверить качественно.
- Непонятные описания «fix stuff».
- Смешение рефакторинга и бизнес-изменений в одном PR.
Мини-задача (обязательная)
Соберите PR-template и reviewer checklist для вашего проекта (frontend + backend + data changes).
Что спросит интервьюер: как вы организуете review так, чтобы оно повышало качество, а не только задерживало merge.
Критерий готовности по уроку: вы можете показать PR-процесс, который снижает дефекты без потери скорости команды.
Урок 4. Git в релизах и инцидентах
Цель: безопасно проводить релизы и hotfix в условиях ограниченного времени.
Release/hotfix стратегия
- Freeze window и критерии готовности.
- Release branch/tagging/versioning.
- Быстрый rollback/revert сценарий.
Инциденты и восстановление
revertкак основной инструмент безопасного отката.reflogдля восстановления локально потерянных состояний.- Запрет импровизаций в проде: только по runbook.
Где ломается в проде
- Hotfix напряму ю в main без трассируемости.
- Нет единого владельца релиза и коммуникации.
- Откат не проверен заранее, в критический момент «не срабатывает».
Мини-задача (обязательная)
Подготовьте release/hotfix runbook: шаги релиза, критерии rollback, роли, SLA коммуникации.
Что спросит интервьюер: как вы организуете rollback, если релиз уже у пользователей.
Критерий готовности по уроку: вы можете провести релиз и управляемо откатить его при риске инцидента.
Практика
- Настройте учебный git workflow в мини-команде (2-3 участника).
- Проведите конфликт-симулятор и оформите postmortem.
- Подготовьте playbook: rebase/merge/revert/cherry-pick/reflog.
- Соберите PR template + reviewer checklist.
- Сформируйте release/hotfix process doc и закрепите в Playbook отве тов.
- Отработайте конфликт + revert + hotfix flow в Песочнице.
Связь с треками и вопросами
- Треки: Junior трек, Middle трек, Senior трек.
- Вопросы: Playbook, Senior Frontend.
- Повторение: 3-5 вопросов без подсказок -> сверка с модулем -> повтор через 24 часа.
Критерий готовности
Вы объясняете git-процесс как систему надежной поставки, а не как набор команд CLI.