Skip to main content

Solución de problemas de solicitudes de incorporación de cambios apiladas

Resuelva problemas comunes con solicitudes de incorporación de cambios apiladas, incluidos conflictos de rebase, combinaciones bloqueadas, operaciones interrumpidas y problemas de cola de mezcla.

Nota:

Esta característica está en versión preliminar pública y está sujeta a cambios.

En este artículo se tratan los problemas comunes que pueden surgir al trabajar con solicitudes de incorporación de cambios apiladas y cómo resolverlas.

Una base de datos informa de un conflicto

Cuando una base en cascada encuentra un conflicto, gh stack rebase detiene y enumera los archivos en conflicto.

Para resolver el conflicto y continuar:

  1. Abra cada archivo en conflicto y resuelva los marcadores de conflicto (<<<<<<<, =======, >>>>>>>).

  2. Almacenar provisionalmente los archivos resueltos.

    git add .
    
  3. Continúe con la base. Las ramas restantes se vuelven a base automáticamente.

    gh stack rebase --continue
    

Si el conflicto es demasiado complejo o desea empezar de nuevo, anule la base para restaurar todas las ramas a su estado anterior a la base de datos.

gh stack rebase --abort

Sincronización detenida debido a un conflicto

Si se detecta un conflicto mientras se ejecuta gh stack sync, todas las ramas se restauran a su estado original, por lo que no se deja que nada se actualice parcialmente. Resuelva el conflicto de forma interactiva mediante la ejecución de una base directa y, a continuación, inserte las ramas actualizadas.

gh stack rebase
gh stack push

Una sesión de modificación no se iniciará

gh stack modify requiere un estado de inicio limpio. Si no se inicia, confirme lo siguiente:

  • Tiene una pila activa desprotegida.
  • El árbol de trabajo está limpio.
  • No hay ninguna base en curso.
  • No se pone en cola ninguna solicitud de incorporación de cambios para combinar.
  • El historial de confirmaciones es lineal. Si no es así, ejecute gh stack rebase primero.

Se interrumpió una sesión de modificación

Si gh stack modify se interrumpe, por ejemplo, por un conflicto que no desea resolver o un bloqueo de terminal, puede restaurar la pila al estado en el que estaba antes de empezar. Una instantánea de modificación previa se almacena en caché localmente para la recuperación.

gh stack modify --abort

Si se produjo un conflicto al aplicar los cambios y desea seguir en su lugar, resuelva el conflicto, almacene provisionalmente los archivos con git addy, a continuación, ejecute gh stack modify --continue.

No se puede combinar una solicitud de incorporación de cambios

Una solicitud de incorporación de cambios en una pila solo se puede combinar cuando se realiza y cada solicitud de incorporación de cambios que se encuentra debajo de ella, cumple todos los requisitos de combinación y la pila tiene un historial totalmente lineal. Si la combinación está bloqueada, compruebe que:

  • La solicitud de incorporación de cambios y todas las solicitudes de incorporación de cambios siguientes tienen revisiones necesarias y pasan comprobaciones.
  • La pila tiene un historial lineal. Si los cambios se insertan en una rama inferior o el tronco se mueven por delante, es posible que el historial ya no sea lineal.

Para restaurar un historial lineal, ejecute gh stack rebase y, a continuación gh stack push, haga clic en Rebase stack (Rebase stack ) en el cuadro de combinación. Para obtener instrucciones, consulte Administración de solicitudes de incorporación de cambios apiladas.

La combinación se detuvo de forma parcial a través de la pila

Las comprobaciones previas a la combinación se ejecutan antes de cualquier combinación, pero se puede producir un error en una combinación. Por ejemplo, debido a un conflicto inesperado o a un error intermitente. Si se produce un error de forma parcial, la combinación se detiene en esa solicitud de incorporación de cambios.

  • Las solicitudes de incorporación de cambios que se combinan correctamente permanecen en la rama base.
  • La solicitud de incorporación de cambios con errores y las solicitudes de incorporación de cambios anteriores permanecen abiertas.

Resuelva el problema en la solicitud de incorporación de cambios con errores y vuelva a intentar la combinación para colocar el resto de la pila.

Se quitó una solicitud de incorporación de cambios de la cola de mezcla.

Las pilas se mantienen juntas en la cola de mezcla. Si se quita o se expulsa una solicitud de incorporación de cambios de la cola, todas las solicitudes de incorporación de cambios por encima de ella en la pila también se expulsan y quitan. Vuelva a agregar la pila a la cola una vez resuelto el problema subyacente.

Una pila grande también puede dividirse entre grupos de mezcla consecutivos: la cola de mezcla permite que un grupo de mezcla supere su tamaño máximo configurado hasta un 50 % para mantener una pila juntas y las solicitudes de incorporación de cambios que no se ajusten a los grupos posteriores hasta que la pila completa haya llegado.

Ha cerrado una solicitud de incorporación de cambios en el centro de la pila.

Al cerrar una solicitud de incorporación de cambios en medio de una pila, se bloquean todas las solicitudes de incorporación de cambios por encima de ella para que se puedan combinar. La relación de pila se conserva, por lo que para abrir una solicitud de incorporación de cambios diferente o cambiar la estructura de la pila, primero debe disolver la pila y volver a crearla.

Puede desmontar desde el GitHub sitio web o reestructurar la pila con gh stack modify. Desstacking quita solo las solicitudes de incorporación de cambios abiertas, borradores y cerradas; Las solicitudes de incorporación de cambios combinadas y en cola permanecen en la pila. Consulte Administración de solicitudes de incorporación de cambios apiladas y Administración de solicitudes de incorporación de cambios apiladas.

Las confirmaciones no se firman después de una nueva base

Una base desencadenada desde la solicitud de incorporación de cambios se ejecuta en GitHublos servidores de y esas confirmaciones no están firmadas. Si el repositorio requiere confirmaciones firmadas, vuelva a base de GitHub CLI en su lugar.

  • La ejecución gh stack rebase usa las operaciones de Git locales, por lo que las confirmaciones generadas siguen la configuración de firma de confirmación de Git local.
  • Después de rebasar, inserte las ramas actualizadas con gh stack push.

No se puede crear una pila entre bifurcaciones

Las solicitudes de incorporación de cambios apiladas requieren que todas las ramas estén en el mismo repositorio. No se admiten pilas de bifurcación cruzada.