Use solicitudes de incorporación de cambios apiladas para dividir los cambios de código grandes en una cadena de solicitudes de incorporación de cambios más pequeñas y dependientes que puede revisar y combinar de forma independiente.
Una pila es una serie de solicitudes de incorporación de cambios en el mismo repositorio donde cada solicitud de incorporación de cambios tiene como destino la rama de la solicitud de incorporación de cambios debajo de ella, formando una cadena ordenada que llega a una sola rama, normalmente la rama principal. En lugar de una solicitud de incorporación de cambios grande, obtendrá un conjunto de solicitudes de incorporación de cambios más pequeñas. Dado que cada solicitud de incorporación de cambios tiene su propia diferencia centrada, los compañeros de equipo pueden revisar y aprobar cada capa de forma independiente.
Prerequisites
- GitHub CLI (
gh) 2.90.0 o posterior, y Git 2.20 o posterior.- Autentíquese GitHub CLI con
gh auth login.
- Autentíquese GitHub CLI con
- Un GitHub repositorio al que puede hacer push.
Instalación de la extensión de la CLI
gh extension install github/gh-stack
gh extension install github/gh-stack
Sugerencia
Para usar solicitudes de extracción apiladas con agentes de codificación de IA, como GitHub Copilot, instale la gh-stack habilidad.
gh skill install github/gh-stack
gh skill install github/gh-stack
Crea tu primer stack
-
Para inicializar un stack, vaya al repositorio y ejecute el siguiente comando. Esto crea una entrada de seguimiento y tu primera rama.
Shell gh stack init
gh stack initSe le pedirá que nombre su primera rama. De forma predeterminada, la pila usa la rama predeterminada del repositorio (por ejemplo,
main) como trunk, pero una pila puede tener como destino cualquier rama. -
Trabaje en la primera rama como de costumbre: escribir código, preparar los cambios y hacer un commit.
# ... write code ... git add . git commit -m "helpful-commit-message" -
Cuando esté listo para la siguiente unidad lógica de trabajo, agregue una nueva rama a la parte superior de la pila.
Shell gh stack add BRANCH-NAME # ... write code ... git add . git commit -m "Another-helpful-commit-message"
gh stack add BRANCH-NAME # ... write code ... git add . git commit -m "Another-helpful-commit-message" -
Envíe todas las ramas al remoto.
Shell gh stack push
gh stack push -
Cree pull requests y vincúlelas como una pila en GitHub.
Shell gh stack submit
gh stack submitCada solicitud de incorporación de cambios se crea con la rama base correcta. La primera rama tiene como destino
mainy la siguiente ramaBRANCH-NAMEtiene como destino la primera rama. Los revisores solo verán el diff de esa capa. Las solicitudes de incorporación de cambios se vinculan automáticamente como una pila en GitHub y puede ver su orden y navegar rápidamente entre ellas. -
Vea la pila y vea el estado completo en cualquier momento.
Shell gh stack view
gh stack viewEste comando muestra todas las ramas, sus enlaces de pull request, estados y el commit más reciente en cada una.
-
Usa
gh stack add -Am "MESSAGE"para almacenar provisionalmente todos los cambios, confirmar y crear la rama siguiente en un paso. No necesitará un elemento independientegit addogit commit. Si la rama actual aún no tiene commits, el commit se realiza ahí; si ya tiene commits, se crea una nueva rama.# Commit lands on the current branch gh stack add -Am "Auth middleware" # Current branch already has commits, so this creates the next branch gh stack add -Am "API routes" -
Cuando esté listo, haga push de todo y cree las pull requests.
Shell gh stack submit
gh stack submit