Es importante destacar que trabajar con pull requests (PR) apilados exige una disciplina especial en la organización del código y en la secuencia de integración. La extensión para el CLI de GitHub, que introduce el comando `gh stack`, brinda un conjunto de herramientas que simplifican este proceso, permitiendo visualizar, reorganizar y enviar cada capa de la pila de forma controlada. Al iniciar, el comando `gh stack view` muestra una representación clara de todas las capas existentes, facilitando la identificación de los archivos modificados y los commits asociados a cada una. Esta visión integral es esencial para garantizar que cada PR mantenga una lógica coherente y no contenga cambios aislados que carezcan de contexto.
Una consideración clave es la capacidad de modificar la estructura de la pila antes de enviarla a revisión. Con `gh stack modify` es posible “doblar” una capa, trasladando sus cambios a otra capa más adecuada, y renombrar la capa para reflejar mejor su propósito. Este paso no solo mejora la legibilidad del historial, sino que también evita la generación de PRs que, por sí solos, no aportan valor significativo. La experiencia nos demuestra que renombrar las capas con nombres descriptivos, como “Actualizaciones UI de página”, reduce la fricción durante la revisión y acelera la toma de decisiones del equipo.
Una vez que la pila está organizada, el comando `gh stack submit` permite crear todas las pull requests de manera automática. Utilizando las banderas `–auto` y `–open`, las PRs se generan directamente en estado abierto, listas para ser revisadas. Esta automatización elimina la necesidad de crear manualmente cada PR y asegura que la relación de dependencia entre ellas quede explícita en GitHub, gracias al icono de pila que aparece en la interfaz. Además, al enviar la pila completa, el CI se dispara de forma independiente para cada capa, lo que permite validar de manera aislada la integridad de cada conjunto de cambios.
El flujo de fusión de PRs apilados sigue una lógica ascendente: se comienza por la capa inferior y, una vez fusionada, la capa superior se “re‑target” automáticamente hacia la rama principal. Este retargeting garantiza que los cambios posteriores siempre se basen en la versión más reciente de `main`, evitando conflictos inesperados. Es fundamental esperar a que todas las verificaciones de CI concluyan satisfactoriamente antes de proceder con la fusión; de lo contrario, se corre el riesgo de introducir errores en la rama de producción. La experiencia nos demuestra que fusionar de abajo hacia arriba, respetando los estados de CI, mantiene la estabilidad del código y reduce la carga de trabajo del equipo de DevOps.
En conclusión, la extensión `gh stack` del CLI de GitHub ofrece una flexibilidad notable para gestionar PRs apilados, desde la visualización inicial hasta la fusión final. Adoptar estas prácticas —mantener capas coherentes, renombrar con claridad, automatizar la creación de PRs y respetar el orden de fusión— permite a los equipos de desarrollo acelerar sus ciclos de entrega sin sacrificar la calidad. La integración de estas herramientas en la rutina diaria de desarrollo se traduce en una mayor eficiencia, menos errores y una colaboración más fluida entre los miembros del equipo.
Fuente: YouTube



