Git Cherry-pick


git cherry-pick permite aplicar cambios introducidos en commits de una rama a otra. Es especialmente útil donde se desea integrar un commit a una rama sin necesidad de fusionar ramas completas.

Primero identificamos el commit específico que queremos aplicar a otra rama.

git log --oneline

Cambiamos a la rama donde queremos aplicar el commit.

git checkout nombre-rama

Tenemos que tener en cuenta que la rama esté actualizada con respecto al repositorio remoto.

Ejecutamos el comando 🍒

git cherry-pick hash-del-commit

Donde el hash es el que copiamos de commit.

Si el commit se aplica sin conflictos, el cambio estará incorporado automáticamente en la rama actual.

Si hay conflictos, Git nos pedirá que los resolvamos. Para ello podemos realizar las correcciones necesarias y luego subirlas.

git add archivos-modificados
git cherry-pick --continue

Podríamos abortar con:

git cherry-pick --abort

Otra opción sería usar git stash para almacenar los cambios locales sin necesidad de hacer commit, luego utilizar git cherry-pick y recuperar los cambios con git pop.

git stash save "Mis cambios locales"
git cherry-pick e4d5bcf
git stash pop

Una vez resuelto los conflictos, ya podríamos usar git push.

Usar git cherry-pickcon precaución, tenemos que tener en cuenta que git siempre creerá que son commits totalmente diferentes, ya que creará hash para cada uno de ellos.