Por Anónimo (no verificado) , 29 Abril 2026

Sinopsis

git cherry-pick [-n] [-x] [--continue] [--abort] <commit>...

Descripción

El comando git cherry-pick aplica los cambios de uno o más commits existentes a tu branch actual, creando nuevos commits con SHAs diferentes pero el mismo contenido. Es la herramienta correcta para portar bug fixes entre branches de release.

Si surge un conflicto, cherry-pick se pausa para que resuelvas, igual que merge. Pásale múltiples SHAs o un rango (A..B) para portar varios commits a la vez.

En el uso diario, este comando se integra estrechamente con alias de shell, plugins de editor e integración continua. Los usuarios avanzados a menudo añaden alias que combinan los flags que siempre pasan. El formato de salida puede personalizarse vía configuración de Git. Cuando algo sale mal, ejecuta el comando con GIT_TRACE=1 para revelar las llamadas plumbing subyacentes.

Entender cómo este comando interactúa con el resto del modelo de datos de Git rinde dividendos. Cada comando opera sobre algún subconjunto de las piezas (objetos, index, refs, árbol de trabajo), y saber cuáles toca ayuda a predecir resultados y a recuperarse de errores.

Opciones comunes

OpciónDescripción
-n, --no-commitApply changes but don't commit yet.
-xAnnotate the commit message with the source SHA.
-e, --editEdit the commit message before committing.
--continueResume after resolving conflicts.
--abortCancel and restore prior state.
--skipSkip current commit and continue.
-m <parent>Specify mainline when picking a merge commit.
-SGPG-sign the resulting commits.

Ejemplos

git cherry-pick abc123
# Apply a single commit onto current branch

git cherry-pick -x abc123 def456
# Apply two commits with traceability annotations

git cherry-pick A..B
# Pick a range (exclusive of A, inclusive of B)

git cherry-pick --continue
# Continue after fixing conflicts

Errores comunes

Cherry-picking the same change repeatedly can confuse later merges, since identical-looking commits have different SHAs. Use git rerere to remember resolutions. Picking a merge without -m fails. For long sequences, prefer rebase or merge.

Comandos relacionados

git rebase, git revert, git merge, git rerere