Sonata

gh-stack: расширение GitHub CLI для стековых веток и пул-реквестов

Расширение для GitHub CLI, которое помогает вести стековые ветки и pull request'ы. Большое изменение разбивается на цепочку небольших PR, где каждый слой строится на предыдущем и остаётся удобным для ревью.

Инструмент берёт на себя рутину: создаёт ветки, поддерживает их в актуальном состоянии через каскадный rebase, выставляет корректные базовые ветки для PR и позволяет перемещаться между слоями стека простыми командами.

Нижняя ветка стека опирается на trunk (по умолчанию — ветка репозитория по умолчанию), верхняя — самая дальняя от него. При отправке создаётся по одному PR на ветку, и они связываются в Stack на GitHub.

Метаданные стека хранятся в отдельном JSON-файле, который не попадает в репозиторий; состояние прерванного rebase сохраняется отдельно. Автоматически включается rerere, чтобы разрешённые конфликты запоминались между перебазированиями.

Доступны команды инициализации стека, добавления ветки поверх текущей (с опциональным коммитом и автогенерацией имени), а также переключения по номеру стека, номеру или URL пул-реквеста либо имени ветки.

Без аргументов в интерактивном терминале открывается поиск по всем доступным стекам — локальным и удалённым, со статусом PR и возможностью склонировать удалённый стек перед переключением.

Отдельно ставится skill gh-stack, чтобы ИИ-агент для написания кода умел работать со стековыми PR и этим CLI.

GitHub ★ 683

Загрузка страницы