⚠️ Для практики нужен установленный
gt. Если установить его нельзя, выполните задания «на бумаге»: запишите последовательность команд. Установка — в разделе Домашнее задание.
Часть 1. Экспресс-опрос
- Что такое trunk в терминах Graphite и где он задаётся?
- Чем стек веток отличается от одной большой ветки с несколькими коммитами?
- Какая команда создаёт новую ветку поверх текущей и сразу коммитит изменения?
- Что делает
gt modify -aкроме изменения коммита текущей ветки? - Что такое restack и когда он происходит автоматически?
- Какими командами перемещаться вверх и вниз по стеку?
- Почему
gt submitделаетforce-pushи почему это нормально для feature-веток? - Что делает
gt syncпосле того, как нижний PR стека влили в main?
Часть 2. Собрать стек
В любом учебном Git-репозитории (можно из занятия 31):
- Инициализируйте Graphite, выбрав
mainкак trunk. - Создайте стек из трёх веток с осмысленными именами и сообщениями: например
feat/header→feat/body→feat/footer(каждая добавляет свой файл). - Выведите дерево стека одной командой и убедитесь, что порядок правильный.
Часть 3. Правка нижней ветки
- Перейдите в самый низ стека одной командой.
- Измените файл нижней ветки и зафиксируйте изменение так, чтобы ветки выше автоматически перебазировались.
- Убедитесь по выводу, что Graphite перестроил (restacked) верхние ветки.
Часть 4. На подумать (без выполнения)
- Вы собрали стек из 4 веток. В нижней нашлась ошибка. Сколько ручных
git rebaseпонадобилось бы в чистом Git и какой одной командой это делает Graphite? - Почему включать ветку
mainв отправляемый стек — опасно?