Si un rebase de Git se detuvo mientras trabajabas en una Mac, primero comprueba si todavía está en curso con git status. Para reanudarlo, resuelve cada conflicto, añade al stage únicamente los archivos que hayas resuelto y ejecuta git rebase --continue. Para volver al estado de la rama anterior al rebase, ejecuta git rebase --abort. Estas opciones tienen efectos distintos, por lo que debes confirmar qué resultado deseas antes de introducir un comando.

1. Vuelve a abrir el repositorio y comprueba su estado

Abre Terminal desde Spotlight o desde la carpeta Aplicaciones > Utilidades del Finder. En Terminal, ve al directorio raíz del repositorio y luego inspecciona su estado:

cd '/path/to/your/repository'
git status

Sustituye la ruta de ejemplo por la ruta de tu repositorio. Si escribes una ruta que contenga espacios o metacaracteres de la shell, escríbela entre comillas simples, tal como se muestra. La shell por defecto de Terminal es zsh, aunque un administrador o tu propia configuración pueden especificar otra shell. Guía de Terminal de Apple

Si Git indica que hay un rebase en curso, revisa la salida del estado para identificar las rutas con conflictos y el paso actual. Si no informa de un rebase activo, no ejecutes --continue o --abort a ciegas; examina el estado y el historial reciente antes de determinar qué ha ocurrido. git status muestra los cambios del árbol de trabajo y del índice, incluidos los archivos sin seguimiento (untracked), por lo que conviene leer su salida completa en lugar de asumir que cada archivo forma parte del rebase. Documentación de git status de Git

2. Reanuda resolviendo los conflictos con cuidado

Abre cada archivo en conflicto en tu editor. Git marca los conflictos de texto con secciones como <<<<<<<, ======= y >>>>>>>. Decide cuál debe ser el contenido definitivo, edita el archivo y elimina las marcas de conflicto. No aceptes una de las partes de forma automática a menos que coincida con el código o texto deseado. La guía de rebase de Git describe la secuencia para resolver conflictos: editar los archivos, poner las resoluciones en el stage y luego continuar. Documentación de git rebase de Git

Vuelve a Terminal e inspecciona los cambios relevantes antes de añadirlos al stage. Por ejemplo:

git diff

Añade al stage cada ruta resuelta por su nombre, utilizando la ruta real que muestra git status:

git add 'path/to/resolved-file'
git status
git rebase --continue

Las comillas protegen las rutas con espacios o metacaracteres de la shell; omítelas si la ruta no necesita comillas. git add añade al stage el contenido actual del archivo indicado, así que inspecciona primero el diff si contiene modificaciones no relacionadas. Comprueba el estado de nuevo para confirmar que se ha preparado la resolución correcta. Es posible que Git se detenga de nuevo en otro conflicto o te pida editar un mensaje de confirmación (commit); sigue las instrucciones en pantalla y luego repite los pasos de resolver, añadir al stage y continuar. Documentación de git add de Git

Utiliza git rebase --skip únicamente cuando quieras omitir deliberadamente el commit que se está aplicando en ese momento. Esto avanza más allá de ese parche; no es otra forma de reanudar el mismo commit. Si no tienes certeza de si omitirlo descartará trabajo necesario, no lo utilices. Opciones de git rebase de Git

3. Cancela cuando quieras deshacer el rebase

Si deseas detener la operación y volver al estado original de la rama, ejecuta:

git rebase --abort
git status

Git documenta que --abort restablece HEAD a la posición original de la rama (o a la rama especificada, si se indicó una al iniciar el rebase). Después, comprueba el estado y verifica que el resultado sea el esperado. Documentación de git rebase de Git

Evita confundir --abort con --quit. git rebase --quit finaliza la operación de rebase manteniendo HEAD, el índice y el árbol de trabajo tal y como se encuentran en ese instante. Elígelo únicamente si quieres de forma específica detener el rebase pero conservar el estado actual en curso; no restablece la posición de la rama previa al rebase. Si el rebase utilizó --autostash, Git guarda ese stash temporal al salir. Opciones de git rebase de Git

4. Si se cerró la Terminal o el estado no está claro

Cerrar una ventana de Terminal no indica, por sí solo, si Git completó el rebase. Vuelve a abrir el repositorio y ejecuta git status; continúa a partir del estado que reporte. No vuelvas a ejecutar el comando git rebase original mientras haya un rebase activo.

Si una interrupción dejó el repositorio en un estado en el que Git ya no reconoce un rebase activo, evita eliminar manualmente archivos de estado en .git o recurrir a reset --hard por suposición. La documentación de Git señala que una interrupción a destiempo con el backend de apply puede dejar un rebase que un --abort posterior no pueda cancelar de forma limpia. En primer lugar, preserva cualquier trabajo valioso no confirmado y, a continuación, inspecciona git status y git reflog para comprender los movimientos recientes de la rama. El reflog registra las actualizaciones locales recientes en los extremos de las ramas; puede ayudarte a identificar un commit anterior, pero restablecerlo debe ser un acto deliberado. Notas sobre la capacidad de interrupción del rebase en Git, Documentación de git reflog de Git

En el caso común de un conflicto interrumpido, la decisión segura es sencilla: resuelve y añade al stage los cambios previstos antes de --continue, o bien usa --abort cuando quieras descartar el rebase y volver a su punto de partida. Vuelve a comprobar git status después de cualquiera de las dos acciones para tener la certeza del estado real en el que se encuentra la copia de trabajo de tu Mac.

Fuentes