¡Hola comunidad!
.
Hace poco respondí a la pregunta de un compañero sobre la diferencia entre git merge y git rebase, y pensándolo un poco creo que haría un aporte útil para los que tienen la misma duda.
.
Entonces, ¿Cuál es la diferencia entre git merge
y git rebase
? 🤔
.
Para el ejemplo, planteemos un supuesto.
.
Primero, para simplificar consideremos que hay dos ramas, la rama principal y la rama secundaria. La rama principal es el master y la rama secundaria es donde se ejecutarán modificaciones o se implementarán nuevos features.
.
git merge
al ser aplicado, mantiene a salvo la historia de la rama secundaria, ya que crea un nuevo commit que une ambas ramas sin “eliminarlas”, creando un nuevo punto de continuación que tiene 2 historias por detrás.git rebase
al ser aplicado, NO mantiene a salvo la historia de la rama secundaria, sino que “re-escribe” la historia de la rama principal integrando los commits de la rama secundaria en la rama principal, no crea un commit de unión adicional, sino que cambia el puntero (HEAD) al último commit que ubica.Ok, entonces ¿Cuál debemos usar? 🤔
.
Basado en esto (y, es mi opinión, mi humilde opinión), yo diría que git merge
debería usarse para subir cambios y nuevas features a la rama principal y git rebase
debería ser usado cuando se trata de integrar ramas secundarias.
.
Para la rama principal debemos tratar de mantener todo el detalle posible de la historia de trabajo, sin embargo para las ramas secundarias que deben unirse entre ellas, no es tan necesario hacer un seguimiento tan minucioso.
.
Espero que este aporte sirva para los que tenían esa duda, si te parece que hay algún error en algo o en todo lo planteado corrígeme 🤠 y así aprendemos todos.
.
Si quieres ver la respuesta original [haz click aquí]
.
Saludos!
.
Gracias, Julio por este aporte sobre Git-cherry pick
Muy buen aporte
Muchas gracias por tu aporte me fue de gran valor