Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Realización de una Operación de Rebase | Flujos de Trabajo Más Avanzados
Fundamentos de GitHub
course content

Contenido del Curso

Fundamentos de GitHub

Fundamentos de GitHub

1. Introducción a GitHub
2. Interacción Básica con Remotos
3. Flujos de Trabajo Más Avanzados

book
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.

question mark

Después de hacer rebase de feature/payment sobre main, ¿por qué git merge feature/payment realiza una fusión fast-forward?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 5

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

course content

Contenido del Curso

Fundamentos de GitHub

Fundamentos de GitHub

1. Introducción a GitHub
2. Interacción Básica con Remotos
3. Flujos de Trabajo Más Avanzados

book
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.

question mark

Después de hacer rebase de feature/payment sobre main, ¿por qué git merge feature/payment realiza una fusión fast-forward?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 5
some-alt