Pro Git
Pro Git
Figure 27. El registro de confirmaciones inicial
La manera más sencilla de integrar ramas, tal y como hemos visto, es el comando git merge. Realiza una fusión a tres bandas entre las dos últimas instantáneas de cada rama (C3 y C4) y el ancestro común a ambas (C2); creando una nueva instantánea (snapshot) y la correspondiente confirmación (commit).
Figure 28. Fusionar una rama para integrar el registro de trabajos divergentes
Sin embargo, también hay otra forma de hacerlo: puedes capturar los cambios introducidos en C4 y reaplicarlos encima de C3. Esto es lo que en Git llamamos reorganizar (rebasing, en inglés). Con el comando git rebase, puedes capturar todos los cambios confirmados en una rama y reaplicarlos sobre otra.
Por ejemplo, puedes lanzar los comandos:
$ git checkout experiment $ git rebase master First, rewinding head to replay your work on top of it... Applying: added staged commandHaciendo que Git vaya al ancestro común de ambas ramas (donde estás actualmente y de donde quieres reorganizar), saque las diferencias introducidas por cada confirmación en la rama donde estás, guarde esas diferencias en archivos temporales, reinicie (reset) la rama actual hasta llevarla a la misma confirmación que la rama de donde quieres reorganizar, y finalmente, vuelva a aplicar ordenadamente los cambios.