Расширение для GitHub CLI, которое помогает вести стековые ветки и pull request'ы. Большое изменение разбивается на цепочку небольших PR, где каждый слой строится на предыдущем и остаётся удобным для ревью.
Инструмент берёт на себя рутину: создаёт ветки, поддерживает их в актуальном состоянии через каскадный rebase, выставляет корректные базовые ветки для PR и позволяет перемещаться между слоями стека простыми командами.
Нижняя ветка стека опирается на trunk (по умолчанию — ветка репозитория по умолчанию), верхняя — самая дальняя от него. При отправке создаётся по одному PR на ветку, и они связываются в Stack на GitHub.
Метаданные стека хранятся в отдельном JSON-файле, который не попадает в репозиторий; состояние прерванного rebase сохраняется отдельно. Автоматически включается rerere, чтобы разрешённые конфликты запоминались между перебазированиями.
Доступны команды инициализации стека, добавления ветки поверх текущей (с опциональным коммитом и автогенерацией имени), а также переключения по номеру стека, номеру или URL пул-реквеста либо имени ветки.
Без аргументов в интерактивном терминале открывается поиск по всем доступным стекам — локальным и удалённым, со статусом PR и возможностью склонировать удалённый стек перед переключением.
Отдельно ставится skill gh-stack, чтобы ИИ-агент для написания кода умел работать со стековыми PR и этим CLI.
GitHub ★ 683
