Об этом проекте
gh stack — это расширение GitHub CLI для управления стекированными ветками и пул-реквестами. Стекированные PR разбивают большое изменение на цепочку небольших, удобных для ревью пул-реквестов, которые надстраиваются друг над другом; этот инструмент автоматизирует создание веток, поддержание веток в состоянии rebase, установку правильных базовых веток PR и навигацию между слоями.
Установка выполняется через `gh extension install github/gh-stack` и требует GitHub CLI v2.0+. Для ИИ-агентов программирования можно установить дополнительный skill.
Базовая модель: стек — это упорядоченный список веток, каждая из которых основана на ветке ниже, а нижняя основана на trunk-ветке (обычно main). Метаданные стека хранятся локально в `.git/gh-stack` в формате JSON, а состояние rebase — в отдельном файле.
Команды включают:
- init: инициализировать стек, при необходимости подключив существующие ветки, с настраиваемым trunk.
- add: создать новую ветку поверх стека, с опциями для индексации и коммита изменений.
- checkout: переключиться на стек по номеру стека, номеру PR, URL PR или имени ветки, включая интерактивный выбор локальных и удалённых стеков.
- rebase: выполнить fetch и каскадные rebase по всему стеку, с областью downstack/upstack/no-trunk и обработкой continue/abort.
- modify: интерактивный терминальный интерфейс для удаления, объединения, вставки, переименования и переупорядочивания веток.
- sync: выполнить fetch, согласовать удалённый стек, fast-forward trunk, каскадный rebase, push, синхронизировать состояние PR, связать стек и при необходимости удалить слитые ветки.
- push: отправить активные ветки с проверками force-with-lease для каждой ветки.
- submit: отправить ветки и создать или обновить PR и стек GitHub, с интерактивным редактором или автоматическим режимом.
- link: создать или обновить стек GitHub по именам веток или номерам PR без локального отслеживания, что полезно с другими локальными инструментами для работы с ветками.
- merge: слить один или несколько стекированных PR в операции «всё или ничего», с опциями метода слияния и учётом очереди слияния.
- view: показать ветки стека, порядок, ссылки на PR и последние коммиты, с кратким выводом и выводом JSON.
- unstack/delete: удалить стек из локального отслеживания и/или с GitHub.
- Команды навигации (up, down, top, bottom) перемещают между ветками в текущем стеке.
В README подробно описаны флаги, примеры, предварительные условия и поведение, например обработка расхождений и взаимодействие с очередью слияния.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.