Menu
CoddyTech

Git Cherry-pick

Última actualización

git cherry-pick copia los cambios de uno o varios commits concretos y los aplica sobre tu rama actual como commits nuevos. Es la forma de tomar una sola corrección de otra rama sin fusionar toda esa rama: útil para retroportar un hotfix o sacar un commit de una rama de funcionalidad.

Prueba estos comandos en el terminal playground: un shell real en tu navegador, sin nada que instalar.

git cherry-pick copia un commit elegido de otra rama y lo aplica a tu rama actual.

Sintaxis

CommandWhat it does
git cherry-pick <hash>Aplica un commit sobre la rama actual
git cherry-pick <a> <b>Aplica varios commits en orden
git cherry-pick <a>..<b>Aplica un rango de commits (excluyendo a)
git cherry-pick -n <hash>Aplica los cambios pero aún no confirma
git cherry-pick -x <hash>Anota el commit original en el mensaje

Durante un cherry-pick

Si un cherry-pick provoca un conflicto, resuélvelo y continúa.

CommandWhat it does
git cherry-pick --continueReanuda tras resolver los conflictos
git cherry-pick --abortCancela y restaura la rama
git cherry-pick --skipOmite el commit actual

Ejemplo práctico

PasoComandoResultado
1git log --oneline hotfixBusca el hash de la corrección, por ejemplo a1b2c3d
2git switch mainCambia a la rama que debe recibir la corrección
3git cherry-pick a1b2c3dAplica la corrección en main como un commit nuevo con un hash nuevo

Preguntas frecuentes sobre git cherry-pick

¿Qué hace git cherry-pick?
Toma los cambios introducidos por un commit concreto y los aplica sobre tu rama actual como un commit totalmente nuevo (con un nuevo hash). A diferencia de merge o rebase, no trae toda una rama: solo el commit o los commits que indiques.
¿Cuándo debería usar cherry-pick?
Úsalo cuando necesites un commit concreto en otro lugar; por ejemplo, para retroportar una corrección de errores de main a una rama de release, o para extraer un único commit útil de una rama de funcionalidad sin fusionarlo todo. Si quieres la rama entera, usa merge o rebase.
¿Cómo aplico varios commits con cherry-pick?
Enuméralos: git cherry-pick <a> <b> <c> aplica cada uno en orden. Para un rango contiguo usa git cherry-pick <start>..<end>, que aplica todos los commits posteriores a start hasta end inclusive. Añade <start>^..<end> si quieres incluir también start.
¿Qué pasa si un cherry-pick provoca un conflicto?
Git se detiene y marca los archivos en conflicto. Resuélvelos, haz git add de los resultados y luego ejecuta git cherry-pick --continue. Para deshacerlo por completo, usa git cherry-pick --abort, que restaura tu rama al estado anterior al inicio del cherry-pick.
¿Cómo hago cherry-pick de un commit de otra rama?
Busca el hash del commit con git log --oneline <other-branch>, cambia a la rama que debe recibirlo y ejecuta git cherry-pick <hash>. También puedes pasar un nombre de rama, como en git cherry-pick feature, que toma el commit de la punta de esa rama.
¿Cuál es la diferencia entre cherry-pick y merge?
git merge trae todos los commits de una rama y registra dónde se unieron los historiales. Cherry-pick copia solo los commits que indicas, como commits nuevos, sin ningún vínculo con los originales. Haz merge de la rama cuando la quieras entera; usa cherry-pick cuando solo quieras uno o dos commits.
¿Puedo practicar esto en línea?
Sí. Abre el terminal playground para ejecutar git cherry-pick en un shell real en tu navegador, sin nada que instalar. El curso interactivo y gratuito de Git de Coddy también cubre cómo mover commits entre ramas paso a paso.
Ilustración de los lenguajes de programación de Coddy

Aprende Git con Coddy

COMENZAR