Занятие 32. Graphite (gt): стекированные PR
⚠️ Проверить по документации. Этот урок — дополнение вне лекций курса. Graphite (
gt) — внешний инструмент со своим темпом развития. Команды и флаги сверяйте с gt --help и graphite.com/docs.
⚡ Кратко: суть занятия
Graphite (gt) — надстройка над Git для работы со стеками маленьких веток и pull request'ов. Вместо одной большой ветки — цепочка мелких, каждая со своим PR. Ревью идёт по одной логической части.
- Создать ветку стека:
gt create feat/x -a -m "msg" - Навигация:
gt up/gt down/gt top/gt bottom - Поправить низ + обновить весь стек:
gt modify -a(авто-restack) - Отправить PR стека:
gt submit --stack(gt ss) - Синхронизация с main:
gt sync
Внимание:
gt submit делает force-push веток стека. Это нормально для своих feature-веток, но не для общего main.
📖 О чём это занятие
Когда задача большая, она часто превращается в один pull request на 500+ строк, который никто не хочет ревьюить. Подход stacked PRs («стекированные PR») предлагает дробить задачу на цепочку маленьких зависимых веток: модель БД → сервис → API → тесты. Каждая ветится от предыдущей, у каждой — свой небольшой PR. Graphite автоматизирует самую болезненную часть этого подхода — перебазирование (rebase) всей цепочки при изменении нижних веток.
Что изучаем
- Что такое стек веток и зачем дробить большие PR
- Модель Graphite: trunk, родитель/потомок, метаданные стека
- Базовый цикл:
create→modify→submit→sync - Навигация по стеку и автоматический
restack - Как
gtсоотносится с чистым Git (rebase,push)
📚 Что повторить перед изучением
- ← Занятие 16: Ветки в Git — создание и переключение веток
- ← Занятие 19: Merge и rebase — основа того, что
gtавтоматизирует - ← Занятие 22: Git fork и Pull Request — что такое PR
- ← Занятие 30: Командная работа в Git — issue → PR → merge
🎯 Что дальше
- 🔖 Полный справочник команды
gt— все подкоманды, флаги и паттерны - Попробуйте
gtна своём учебном репозитории из занятия 31