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.
Практика в Git-тренажере
- Конфликт в feature branch - базовый разбор conflict без потери production-fix.
- Плохой commit уже в shared branch - rollback через
revert, а не rewrite общей истории. - Interactive rebase перед PR - чистая локальная история перед review.
- Cherry-pick hotfix в release - перенос узкого patch без лишнего
main. - Force-push safety -
--force-with-leaseтолько для своей feature-ветки. - Stash перед срочным switch - парковка WIP без
reset --hard.
Программа модуля
Урок 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 конфликтных сценария и сделайте разбор: причина, шаги решения, как избежать повтора. Отработайте один из них в Git-тренажере: конфликт или interactive rebase.
Что спросит интервьюер: как вы действуете при сложном 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 коммуникации. Проверьте runbook на сценарии hotfix из production incident или cherry-pick hotfix в release.
Что спросит интервьюер: как вы организуете rollback, если релиз уже у пользователей.
Критерий готовности по уроку: вы можете провести релиз и управляемо откатить его при риске инцидента.
Практика
1. Team Git workflow
Опишите workflow для мини-команды из 2-3 участников: branch policy, PR flow, merge strategy и release branch.
Ответьте:
- Bundlers q-2: lockfile integrity и конфликт в dependency graph.
- Senior q-16: CI gates для frontend.
- Playbook q-10: структура ответа.
Артефакт: git workflow note с branch, merge rule, required checks, review owner, rollback point.
Готово, если для каждого merge path понятно, какие checks обязательны и где точка безопасного отката.
2. Conflict and recovery drill
Проведите конфликт-симулятор без runtime sandbox: возьмите учебный PR с конфликтом в code и lockfile, затем запишите recovery plan.
Ответьте:
- Bundlers q-15: CI critical path и доверие к checks.
- Playbook q-7: risk management.
Артефакт: conflict recovery note с conflict type, resolution rule, verification command, owner, postmortem action.
Готово, если после конфликта есть конкретная проверка, которая доказывает, что graph/build/test не сломаны.
3. Release/hotfix runbook
Соберите runbook для ситуации: релиз уже у пользователей, найден критичный regression.
Ответьте:
- Senior q-12: release strategy и rollback.
- Senior q-19: postmortem после инцидента.
- Bundlers q-17: release pipeline с quality gates.
Артефакт: release/hotfix runbook с trigger, revert/cherry-pick rule, checks, comms, owner, postdeploy verification.
Готово, если rollback можно выполнить по шагам без импровизации и после него есть postmortem action.
Связь с треками и вопросами
- Delivery вопросы: Senior q-12, q-16, q-19, Bundlers q-2, q-15, q-17.
- Playbook: q-7, q-10.
- Повтор через 24 часа: проговорите один incident как
bad merge -> failed check -> revert/hotfix -> verification -> postmortem action.
Критерий готовности
Ready: вы объясняете git-процесс как delivery system и показываете workflow note, conflict recovery note, PR checklist и release/hotfix runbook.
Partial: команды Git известны, но неясны required checks, owner, rollback point или postdeploy verification.
Not ready: ответ сводится к набору CLI-команд без release risk, communication и recovery plan.
Артефакты после модуля
- Документ Git Workflow для команды.
- PR-template и review checklist.
- Release/hotfix runbook с ролями.
- 4 сильных interview-ответа: workflow, conflict recovery, release/hotfix, rollback/postmortem.