Rebase
It basically takes your current commits and applies them beginning from where you define
Git usa distintos métodos para registrar los cambios. El comando git rebase es una de las dos utilidades de Git que se especializa en integrar cambios de una rama a otra. La otra utilidad de integración de cambios es git merge. La fusión es siempre un registro de cambios de avance. En cambio, la fusión mediante cambio de base presenta potentes funciones de reescritura del historial.
El motivo principal por el que llevar a cabo una fusión mediante cambio de base es para mantener un historial del proyecto lineal. Por ejemplo, piensa en una situación en la que la rama principal haya progresado desde que empezaste a trabajar en una rama de función. Quieres incorporar las últimas actualizaciones de la rama principal a tu rama de función, pero quieres mantener el historial de la rama limpio para que parezca que has estado trabajando a partir de la rama principal más reciente. Esto proporciona el beneficio posterior de una fusión limpia de la rama de función de nuevo a la rama principal. ¿Por qué queremos mantener un "historial limpio"? Los beneficios de tener un historial limpio se vuelven evidentes cuando se realizan operaciones de Git para investigar la introducción de una regresión. Una situación más realista sería la siguiente:
Se identifica un error en la rama principal. Una función que funcionaba perfectamente ahora falla.
Un desarrollador examina el historial de la rama principal usando
git log. Dado que el historial está "limpio", el desarrollador puede deducir rápidamente qué ha ocurrido en el historial del proyecto.El desarrollador no puede identificar mediante
git logcuándo se introdujo el error, por lo que ejecuta un comandogit bisect.Dado que el historial de Git está limpio,
git bisecttiene un conjunto perfeccionado de confirmaciones para comparar cuando se busca la regresión. El desarrollador encuentra rápidamente la confirmación que introdujo el error y puede actuar en consecuencia.
A continuación los comandos más importantes.
👉 Rebases your current changes
git rebase <remote>
or
git rebase <branch>
or
git rebase <commitId>👉 Interactively rebase your changes
git rebase -i <branch>Ejecutar git rebase con la marca -i inicia una sesión de fusión mediante cambio de base interactiva. En vez de mover a ciegas todas las confirmaciones a la nueva base, la fusión mediante cambio de base interactiva te da la oportunidad de alterar las confirmaciones individuales en el proceso, lo que te permite limpiar el historial eliminando, dividiendo y alterando una serie existente de confirmaciones. Es como git commit --amend, pero a lo bestia.
Last updated