Sobre el proyecto
gh stack es una extensión de GitHub CLI que gestiona ramas apiladas y pull requests. Los PR apilados dividen un cambio grande en una cadena de pull requests pequeños y revisables que se construyen uno sobre otro; esta herramienta automatiza la creación de ramas, mantiene las ramas rebasadas, establece las ramas base correctas de los PR y permite navegar entre capas.
La instalación se realiza mediante `gh extension install github/gh-stack` y requiere GitHub CLI v2.0+. Se puede instalar una skill opcional para agentes de codificación con IA.
Modelo central: un stack es una lista ordenada de ramas, cada una basada en la inferior, con la inferior basada en una rama troncal (normalmente main). Los metadatos del stack se almacenan localmente en `.git/gh-stack` como JSON, con el estado de rebase en un archivo separado.
Los comandos incluyen:
- init: inicializa un stack, opcionalmente adoptando ramas existentes, con un tronco configurable.
- add: crea una nueva rama en la parte superior del stack, con opciones para preparar y confirmar cambios.
- checkout: cambia a un stack por número de stack, número de PR, URL de PR o nombre de rama, incluyendo un selector interactivo para stacks locales y remotos.
- rebase: obtiene y aplica rebases en cascada a través del stack, con alcance downstack/upstack/no-trunk y manejo de continue/abort.
- modify: una interfaz de terminal interactiva para eliminar, plegar, insertar, renombrar y reordenar ramas.
- sync: obtiene, reconcilia el stack remoto, avanza el tronco con fast-forward, aplica rebase en cascada, hace push, sincroniza el estado de los PR, vincula el stack y, opcionalmente, elimina ramas fusionadas.
- push: hace push de las ramas activas con comprobaciones force-with-lease por rama.
- submit: hace push de las ramas y crea o actualiza PRs y el stack de GitHub, con un editor interactivo o modo automático.
- link: crea o actualiza un stack de GitHub a partir de nombres de ramas o números de PR sin seguimiento local, útil con otras herramientas locales de ramas.
- merge: fusiona uno o más PRs apilados en una operación todo o nada, con opciones de método de fusión y reconocimiento de merge queue.
- view: muestra las ramas del stack, el orden, los enlaces de PR y los commits recientes, con salida corta y JSON.
- unstack/delete: elimina un stack del seguimiento local y/o de GitHub.
- Comandos de navegación (up, down, top, bottom) se mueven entre ramas del stack actual.
El README documenta en detalle flags, ejemplos, precondiciones y comportamientos como el manejo de divergencias y las interacciones con merge queue.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.