📝 Задания

⚡ Кратко: что сделать

  • Экспресс-опрос (8 вопросов) на понимание стеков и команд
  • Практика: собрать стек из 3 веток в учебном репозитории
  • Практика: поправить низ стека и обновить весь стек

Ответы и разбор — на странице Решения.

⚠️ Для практики нужен установленный gt. Если установить его нельзя, выполните задания «на бумаге»: запишите последовательность команд. Установка — в разделе Домашнее задание.

Часть 1. Экспресс-опрос

  1. Что такое trunk в терминах Graphite и где он задаётся?
  2. Чем стек веток отличается от одной большой ветки с несколькими коммитами?
  3. Какая команда создаёт новую ветку поверх текущей и сразу коммитит изменения?
  4. Что делает gt modify -a кроме изменения коммита текущей ветки?
  5. Что такое restack и когда он происходит автоматически?
  6. Какими командами перемещаться вверх и вниз по стеку?
  7. Почему gt submit делает force-push и почему это нормально для feature-веток?
  8. Что делает gt sync после того, как нижний PR стека влили в main?

Часть 2. Собрать стек

В любом учебном Git-репозитории (можно из занятия 31):

  1. Инициализируйте Graphite, выбрав main как trunk.
  2. Создайте стек из трёх веток с осмысленными именами и сообщениями: например feat/headerfeat/bodyfeat/footer (каждая добавляет свой файл).
  3. Выведите дерево стека одной командой и убедитесь, что порядок правильный.

Часть 3. Правка нижней ветки

  1. Перейдите в самый низ стека одной командой.
  2. Измените файл нижней ветки и зафиксируйте изменение так, чтобы ветки выше автоматически перебазировались.
  3. Убедитесь по выводу, что Graphite перестроил (restacked) верхние ветки.

Часть 4. На подумать (без выполнения)

  1. Вы собрали стек из 4 веток. В нижней нашлась ошибка. Сколько ручных git rebase понадобилось бы в чистом Git и какой одной командой это делает Graphite?
  2. Почему включать ветку main в отправляемый стек — опасно?