Contenido del Curso
Fundamentos de GitHub
Fundamentos de GitHub
Realización de una Operación de Rebase
Rebase de cambios en la rama main
Antes de poder hacer un rebase de nuestros cambios, primero necesitamos cambiar a la rama main
y obtener los últimos cambios:
Ahora, observemos el árbol de commits:
Actualmente, tanto la rama main
como la rama feature/payment
tienen commits posteriores al ancestro común más reciente. Esto indica que no se puede realizar una fusión fast-forward.
Si fusionáramos estas ramas, se produciría una fusión de tres vías. Sin embargo, queremos mantener nuestro historial lineal, así que realizaremos un rebase de la rama feature/payment
sobre la rama main
. Esto se puede hacer cambiando a la rama feature/payment
y ejecutando el comando git rebase
:
Fusión por avance rápido
Dado que el rebase fue exitoso, revisemos nuevamente nuestro árbol de commits:
Como se esperaba, el historial de commits ahora es lineal y el último commit se encuentra en la rama feature/payment
. Ahora, podemos realizar una fusión por avance rápido en la rama main
:
Verifiquemos que ambas ramas apunten al mismo commit revisando el último commit:
Eliminación de la rama de características
La rama main
ahora contiene el commit más reciente con la implementación del sistema de pagos, por lo que podemos eliminar de forma segura tanto la rama local como la remota feature/payment
. El siguiente comando elimina la rama remota:
Ahora, podemos eliminar la rama local:
Finalmente, todos los cambios realizados pueden ser enviados al repositorio remoto:
Para verificar que la rama feature fue eliminada tanto localmente como remotamente, puedes ejecutar el siguiente comando, que lista todas las ramas locales y remotas (-a
significa todas):
Como puedes ver, la rama feature/payment
fue eliminada exitosamente, y ahora solo hay dos ramas: main
y john/test
con sus contrapartes remotas.
En general, el rebase funciona bien para cambios locales que aún no se han compartido, pero puede causar problemas significativos para cambios que ya han sido publicados en un repositorio remoto y posiblemente descargados por otros colaboradores. Hacer rebase de commits que otros están utilizando puede crear confusión y conflictos debido a la reescritura del historial de commits.
Como regla general, evita hacer rebase de cambios que hayan sido empujados a repositorios remotos para prevenir estos problemas.
¡Gracias por tus comentarios!