Diferencia entre revisiones de «Cherry-picking»
Línea 2: | Línea 2: | ||
1) Nos movemos a la rama donde estemos implementando la nueva funcionalidad: | 1) Nos movemos a la rama donde estemos implementando la nueva funcionalidad: | ||
− | + | <source> | |
git checkout new-feature | git checkout new-feature | ||
− | + | </source> | |
2) Tras movernos, realizaremos los cambios que necesitemmos. Supongamos que obtenemos una salida parecida a la siguiente | 2) Tras movernos, realizaremos los cambios que necesitemmos. Supongamos que obtenemos una salida parecida a la siguiente | ||
Línea 10: | Línea 10: | ||
git log --oneline | git log --oneline | ||
</source> | </source> | ||
− | |||
− | |||
3) Bien, pues que necesitamos hacer para traernos a la rama master los commits XXXX y YYYY? | 3) Bien, pues que necesitamos hacer para traernos a la rama master los commits XXXX y YYYY? |
Revisión del 12:06 9 nov 2019
Cuando estamos implementando en nuestra rama puede ser necesario o recomendable traernos a la rama principal solo alguno de los commits que hicimos en la rama donde hemos desarrollado nuestra nueva funcionalidad. Es ene ste escenario donde podemos utilizar cherrypicking.
1) Nos movemos a la rama donde estemos implementando la nueva funcionalidad:
git checkout new-feature
2) Tras movernos, realizaremos los cambios que necesitemmos. Supongamos que obtenemos una salida parecida a la siguiente
git log --oneline
3) Bien, pues que necesitamos hacer para traernos a la rama master los commits XXXX y YYYY?
git checkout master
git cherry-pick XXXX YYYY
4) En este momento,
4a) Si nos aparecen conflictos tendremos que resolverlos y posteriormente
git cherry-pick --continue
4b) Si por el contrario queremos abortar el cherrypick
git cherry-pick --abort
¡OJO!! El cherry-picking esta desaconsejado normalmente por los desarrolladores. La razón principal es porque crean dos commits duplicados con los mismos cambios y se pierde la capacidad de rastrear el historial de la confirmación original. Es decir, en casos donde es posible hacer un merge completo. Mejor optar por el.