Tutorial de Git - Rebase

  1. ¿Qué es git rebase?
  2. Flujo de trabajo de la base
  3. Regla de oro del rebase

Hemos cubierto fusiones básicas como

  • Fusión rápida

  • Fusión de tres vías (recursiva)

En este tutorial, vamos a introducir una de las características más importantes de git - el rebase.

¿Qué es git rebase?

Rebase significa que estás cambiando el commit de raíz de las ramas en base a, o en otras palabras, estás reseteando el commit base al commit reciente de la rama que estás planeando fusionar, como la rama master.

Veamos cómo se ve esto,

Rama de características de Git

En este diagrama tenemos las ramas master y Feature y mientras trabajabamos en nuestra rama Feature, otros miembros del equipo continuaron trabajando en la rama master.

Queremos volver a basar nuestra rama antes de fusionarla de nuevo en el master y cuando ejecutamos el comando de basar, cambia la confirmación en la que se basa nuestra rama de pruebas en lugar de apuntar a la C3 en lugar de a la C1. El siguiente gráfico muestra lo que sucede después de rebasar.

Rama de características de Git

Cuando fusionamos los cambios, sólo tiene que hacer una fusión rápida de nuevo porque las confirmaciones se basan ahora en la última confirmación del master. Por eso el rebase es una de las características más potentes de git.

Después de que fusiones esta rama Feature rebasada con el master, el gráfico del registro de confirmaciones será como el siguiente,

Gráfico de registro de Git después del rebase

Parece que la rama Feature no ha existido nunca y todos los registros de confirmación están en línea recta.

Flujo de trabajo de la base

  • Crear la rama de la característica
    $ git checkout -b Feature
    
  • Realice cambios en esta rama y confirme
    $ git add modified.txt
    $ git commit -m 'coment here'
    
  • La característica de rebase se bifurca en el master.
    $ git rebase master
    
  • Fusionar la rama de la característica en master.
    $ git checkout master
    $ git merge Feature
    

Regla de oro del rebase

La regla de oro es no rebajar nunca la base de una rama que se ha hecho pública por la reescritura de la historia.

Si rebase una rama pública y alguien trabaja fuera de esa rama después de haberla rebasado, conseguir esos nuevos cambios en su rama master será muy difícil porque los otros desarrolladores todavía trabajan con la rama master original.