~/ 👨‍💻 uncodigo.com _


🌐 Desarrollo

Git cherry-pick: qué es, cuándo usarlo y por qué es tan importante en el desarrollo de software

Felipe 4 min de lectura
Aprende qué es git cherry-pick, cómo funciona realmente, cuándo usarlo y por qué es una herramienta clave para manejar cambios específicos sin romper tu flujo de trabajo.

Git cherry-pick: traer solo lo que necesitas (y nada más)

En algún momento de tu vida como desarrollador te va a pasar esto:

  • hay un bug crítico en producción 🧨
  • el fix ya existe… pero está en otra rama
  • no quieres mergear todo
  • solo necesitas ese commit

Ahí es donde git cherry-pick deja de ser un comando raro y se convierte en una herramienta clave de supervivencia.

Qué es git cherry-pick (explicado sin humo)

git cherry-pick te permite aplicar uno o varios commits específicos de otra rama en la rama actual, sin traer todo el historial.

Dicho simple:

“Quiero este cambio puntual, no todo el árbol”.

No es merge. No es rebase. Es copiar un commit exacto y aplicarlo donde tú decidas.

El problema que resuelve (muy común en equipos reales)

Imagina este escenario:

  • main: producción
  • develop: trabajo activo
  • un bug se arregló en develop
  • develop aún no está listo para mergear

Hacer merge sería arriesgado. Esperar no es opción.

Ahí entra cherry-pick.

Uso básico de git cherry-pick

El flujo básico es así:

  1. Te mueves a la rama destino
  2. Aplicas el commit que necesitas
git checkout main
git cherry-pick <hash-del-commit>

Eso crea un nuevo commit en main con los mismos cambios.

⚠️ Importante: no es el mismo commit, es una copia con un nuevo hash.

Cherry-pick de varios commits

También puedes aplicar más de uno:

git cherry-pick <hash1> <hash2>

O incluso un rango:

git cherry-pick A..B

Esto aplica todos los commits después de A hasta B, inclusive.

Qué pasa si hay conflictos (spoiler: puede pasar)

Como cualquier operación que aplica cambios, cherry-pick puede generar conflictos.

Cuando pasa:

  1. Git se detiene
  2. Resuelves conflictos manualmente
  3. Confirmas el cherry-pick
git status
git add .
git cherry-pick --continue

Si decides abortar:

git cherry-pick --abort

Nada explotó. Todo vuelve atrás. 😌

Cuándo usar git cherry-pick (y cuándo no)

Úsalo cuando:

  • necesitas un fix puntual urgente
  • quieres llevar un commit específico a otra rama
  • trabajas con hotfixes
  • quieres evitar merges grandes y riesgosos

Evítalo cuando:

  • los commits están muy acoplados
  • estás replicando cambios constantemente
  • el flujo se vuelve “copiar y pegar commits”

Si usas cherry-pick todos los días, probablemente hay un problema de workflow.

Un error común: abusar del cherry-pick

Cherry-pick no reemplaza un buen flujo de ramas.

Problemas típicos por abuso:

  • commits duplicados en varias ramas
  • historial confuso
  • fixes aplicados varias veces
  • difícil trazabilidad

Recuerda: cherry-pick es un bisturí, no una motosierra.

Cherry-pick vs merge vs rebase (rápido y claro)

  • merge: une historiales completos
  • rebase: reescribe historia para linealidad
  • cherry-pick: copia cambios específicos

Cada uno tiene su lugar. Cherry-pick es el más quirúrgico.

Un ejemplo real de uso responsable

Bug crítico detectado en producción:

  1. Fix se hace en develop
  2. Se revisa y aprueba
  3. Se cherry-pickea solo ese commit a main
  4. Se deploya
  5. develop sigue su curso normal

Resultado:

  • producción estable
  • sin mezclar features incompletas
  • sin estrés innecesario

Pensar git cherry-pick como herramienta de control

Más que un comando, git cherry-pick es una forma de pensar:

“¿Qué cambio exacto quiero mover y por qué?”

Usado con criterio:

  • te ahorra tiempo
  • reduce riesgos
  • mejora la calidad del flujo

Usado sin pensar:

  • genera deuda
  • confunde al equipo

En el día a día, cherry-pick bien usado se nota

No se nota cuando está bien hecho. Se nota cuando falta.

Cuando sabes usar git cherry-pick, tienes una herramienta más para responder rápido, sin romper cosas, y sin sacrificar orden.

Y eso, en desarrollo de software real, vale oro. 💎

#git #git cherry-pick #control de versiones #git workflow #desarrollo de software