En una Mac, resuelva un conflicto de cherry-pick editando cada archivo en conflicto en Terminal o en un editor de código, preparando los archivos terminados con git add y ejecutando git cherry-pick --continue. Git se pausa porque no pudo aplicar un commit de forma limpia; su rama actual aún no ha recibido ese commit. Revise ambas partes de cada conflicto antes de continuar, y use git cherry-pick --abort si decide no continuar. La documentación de cherry-pick de Git describe este estado en pausa y sus opciones para continuar.
1. Abra Terminal en la carpeta del proyecto
Abra Terminal desde Spotlight o desde la carpeta Aplicaciones > Utilidades de Finder. En Terminal, vaya a la carpeta del repositorio con cd y su ruta. Si la ruta de una carpeta contiene espacios, escríbala entre comillas, por ejemplo cd "/Users/sam/Work/My Project". También puede escribir cd con un espacio al final, arrastrar la carpeta del proyecto desde Finder a la ventana de Terminal y luego presionar Return. Apple describe Terminal como la interfaz de línea de comandos de macOS; su cursor suele terminar con % cuando se utiliza el shell predeterminado zsh. La guía de Terminal de Apple explica cómo abrirlo y reconocer el cursor.
Confirme que se encuentra en el repositorio y vea lo que Git informa antes de modificar archivos:
git status
Si la salida indica que hay un cherry-pick en curso y nombra rutas en conflicto, continúe a continuación. Si no está seguro de qué repositorio o commit está involucrado, deténgase y confirme ese contexto antes de resolver nada. No inicie un segundo cherry-pick mientras el primero esté en pausa.
2. Inspeccione el conflicto y decida qué debe contener el archivo
Abra cada archivo de texto en conflicto en su editor. Git inserta marcadores alrededor de las secciones que no pudo conciliar. Una sección típica se ve así:
<<<<<<< HEAD
content on the current branch
=======
content from the commit being cherry-picked
>>>>>>> commit subject or identifier
HEAD es la versión de la rama actual; la otra sección proviene del commit que se está aplicando. Estas etiquetas describen los dos lados de esta operación, pero no le dicen cuál versión es la correcta. Utilice el código circundante, el cambio deseado y el propósito del commit para decidir si conservar un lado o combinarlos. La documentación de Git explica que los archivos en conflicto contienen marcadores y que las rutas aplicadas limpiamente pueden estar ya actualizadas. Git cherry-pick
Edite el archivo para que contenga el resultado previsto, eliminando todas las líneas con marcadores de conflicto. Revise cada conflicto en ese archivo, guárdelo y repita para cada ruta indicada por git status. En el caso de un archivo binario o de un conflicto cuyo resultado previsto no esté claro, no adivine: consulte con el autor del cambio o con las directrices del proyecto antes de elegir una versión. Evite reemplazar un archivo completo por un solo lado simplemente para hacer desaparecer el conflicto; eso puede descartar cambios válidos.
3. Prepare las resoluciones y revíselas
Después de resolver un archivo, indíquele a Git que su conflicto está resuelto preparándolo (staging). Use la ruta exacta que muestra git status; encierre entre comillas las rutas que contengan espacios:
git add "Sources/Example File.swift"
Repita el proceso para cada ruta resuelta. git add prepara el contenido actual del archivo, por lo que debe revisar lo que está preparando si contiene modificaciones no relacionadas. El manual de git-add de Git documenta que añade el contenido de los archivos al índice, el área de preparación utilizada para el siguiente commit. Git add
Verifique si queda algún conflicto e inspeccione la resolución preparada:
git status
git diff --cached
git status ya no debería listar rutas no resueltas. Lea el diff preparado y confirme tanto que el cambio previsto esté presente como que no haya marcadores de conflicto ni ediciones accidentales. git diff --cached muestra los cambios preparados; Git diff documenta esta opción de revisión. Si encuentra un error, edite el archivo, prepárelo nuevamente y vuelva a revisar el diff.
4. Continúe con el cherry-pick
Cuando todos los conflictos estén resueltos y preparados, ejecute:
git cherry-pick --continue
Git reanuda la operación en pausa y, si tiene éxito, registra el cambio seleccionado como un nuevo commit. Si Git abre un editor para el mensaje de confirmación, guárdelo y ciérrelo utilizando los controles normales de ese editor. Luego verifique git status y revise el commit más reciente si es necesario:
git status
git log -1 --oneline
En una secuencia de commits seleccionados mediante cherry-pick, --continue continúa con la operación; un commit posterior también podría detenerse por conflictos. Resuelva y prepare los conflictos de ese commit de la misma manera. Git documenta --continue para reanudar un cherry-pick que falló y --skip para omitir el commit actual. Use --skip solo cuando intencionalmente desee omitir el cambio de ese commit, no como un atajo para archivos no resueltos. Opciones de Git cherry-pick
Si prefiere detenerse
Si decide que el cherry-pick no debe continuar, ejecute git cherry-pick --abort. Git documenta esto como cancelar la operación y regresar al estado anterior al inicio de la secuencia. Si tenía trabajo local antes de comenzar, verifíquelo después con git status; no utilice comandos destructivos de reinicio como sustituto de comprender el estado actual. Git cherry-pick
Una regla útil para detenerse es sencilla: continúe solo después de haber comprendido el contenido previsto de cada archivo en conflicto y haber revisado el resultado preparado. Si la intención del código no está clara, mantenga el estado en pausa y solicite orientación específica sobre el proyecto antes de crear el commit.
Fuentes
Abrir o salir de Terminal en Mac — Soporte técnico de Apple