Rebase

Rebase

He estado desarrollando una nueva característica en una nueva rama y, además, he realizado bastantes cambios en mi rama maestra.

¿Es posible fusionar la rama maestra en mi nueva rama para mantenerla actualizada y no tener demasiados conflictos de fusión una vez que finalice la nueva característica?

Respuesta1

Tu también puedesgit merge masterogit rebase master.

Si la rama no se ha distribuido a otras personas, en este caso preferiríagit rebase.

Porque git rebasehace que parezca que los cambios en la rama de características se realizaron además de los cambios en la rama maestra, lo que simplifica el gráfico de versiones.

Rebase

Tomando el ejemplo de lamanual de rebase de git, git rebase masteren sucursal feature:

      A---B---C feature                             A'--B'--C' feature
     /                   --rebase-->               /
D---E---F---G master                  D---E---F---G master

Sin embargo, git rebasesolo es adecuado cuando nadie más está trabajando en ello, o habrá confusión y trabajo extra para ellos, porque las antiguas confirmaciones A, B, C ahora son reemplazadas por nuevas confirmaciones A', B', C', más F. y G que no estaban ahí antes.

El resultado real después git rebase masterde la rama featurees este:

      ( A---B---C ) feature@{1}
       /
      /       A'--B'--C' feature
     /       /
D---E---F---G master

Las confirmaciones A, B, C están pendientes después de la rebase, pero se puede acceder a ellas a través git reflog featurede feature@{1}.

Unir

Si alguien ha tirado de tu rama, o la has empujado hacia alguna parte, deberías fusionarte con ella para evitar confusión y trabajo extra en el otro extremo. VerRecuperarse de la rebase ascendente.

Este es el resultado de git merge masteren rama feature:

      A---B---C feature                    A---B---C---M feature
     /                   --merge-->       /       ,---’
D---E---F---G master                 D---E---F---G master

Alternativamente, si estás git merge featureen una rama master, se vería así:

      A---B---C feature                    A---B---C feature
     /                   --merge-->       /         \
D---E---F---G master                 D---E---F---G---M master

información relacionada