Sobes.tech
Junior

¿Qué es cherry-pick?

sobes.tech AI

Respuesta de la IA

git cherry-pick se utiliza para transferir uno o varios commits de una rama a otra.

Principio de funcionamiento:

  1. Selecciona el commit (o commits) especificado en la rama de origen.
  2. Aplica los cambios contenidos en estos commits a la rama activa actual.
  3. Crea nuevos commits en la rama actual con los mismos cambios y mensajes que los originales.

Cuándo usar:

  • Transferir una corrección específica de error de una rama (por ejemplo, producción) a otra (por ejemplo, desarrollo), sin afectar otros cambios.
  • Aplicar cambios de una rama de características a otra, sin fusionarlas completamente.
  • Cancelar fusiones incorrectas conservando los commits individuales.

Diferencias con merge y rebase:

  • merge: Une toda la historia de cambios de una rama en otra.
  • rebase: Reescribe la historia de commits, moviéndolos a una nueva base.
  • cherry-pick: Aplica solo los commits seleccionados, creando nuevos y sin modificar la historia de los commits originales.

Comando principal:

# Transferir un commit
git cherry-pick <commit-hash>

# Transferir varios commits (en orden de su indicación)
git cherry-pick <commit-hash-1> <commit-hash-2> ...

Ejemplo:

Supongamos que hay dos ramas: main y feature. En la rama feature se hizo un commit fix-typo. Es necesario transferir este commit a la rama main.

# Cambiar a la rama de destino
git checkout main

# Ejecutar cherry-pick usando el hash del commit de la rama feature
git cherry-pick 7f3bca2 # Ejemplo de hash de commit

Después de ejecutar el comando, en la rama main aparecerá un nuevo commit con los mismos cambios que fix-typo, pero con un hash diferente.