Cherry-Pick for Dummies


El cherry-pick es una función de Git que permite seleccionar un conjunto de cambios de una rama y aplicarlos a otra. Es una herramienta útil para cuando queremos incorporar un cambio específico a nuestra rama actual sin tener que fusionar toda la rama de desarrollo. Pero, ¿cómo podemos hacer un cherry-pick sin morir en el intento?
Aquí te dejo algunos pasos a seguir:
-
Identifica el hash del commit que quieres aplicar en tu rama actual. Puedes encontrarlo en el historial de commits o en la rama de desarrollo.
bash❯ git log --graph --oneline --decorate
-
Cambia a la rama en la que quieres aplicar los cambios.
bash❯ git switch <nombre-de-rama>
-
Realiza el cherry-pick con el hash del commit que quieres aplicar.
bash❯ git cherry-pick <hash-del-commit>
-
Resuelve los conflictos, si es que los hay. En algunos casos, Git puede resolver los conflictos automáticamente, pero en otros, necesitarás hacerlo manualmente. Lo siguiente es un ejemplo:
bash❯ git cherry-pick d19e920 Auto-merging openapi.yml CONFLICT (content): Merge conflict in openapi.yml error: could not apply d19e920... chore: Agrego CategoryId al esquema de la API. hint: After resolving the conflicts, mark them with hint: "git add/rm <pathspec>", then run hint: "git cherry-pick --continue". hint: You can instead skip this commit with "git cherry-pick --skip". hint: To abort and get back to the state before "git cherry-pick", hint: run "git cherry-pick --abort".
-
Verifica que los cambios se hayan aplicado correctamente.
bashgit log
-
Si todo se ve bien, haz commit de los cambios.
bashgit commit -m "Mensaje de commit"
Es importante tener en cuenta que el cherry-pick puede generar conflictos si el cambio que queremos aplicar depende de otros cambios que no están presentes en nuestra rama actual. También es importante hacer un seguimiento cuidadoso de los cambios que estamos aplicando para evitar errores y mantener una buena gestión del historial de commits.
Siguiendo estos pasos, podrás hacer un cherry-pick sin morir en el intento y aplicar cambios específicos a tu rama actual de forma eficiente y segura.
¡Buena suerte!