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-pick
con 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.