Git Rebase: reorganizando el trabajo realizado

Clase 35 de 43Curso Profesional de Git y GitHub

Resumen

Rebase es el proceso de mover o combinar una secuencia de confirmaciones en una nueva confirmación base. La reorganización es muy útil y se visualiza fácilmente en el contexto de un flujo de trabajo de ramas de funciones. El proceso general se puede visualizar de la siguiente manera.

rebase1.png

Para hacer un rebase en la rama feature de la rama master, correrías los siguientes comandos:

git checkout feature
git rebase master

Esto trasplanta la rama feature desde su locación actual hacia la punta de la rama master:

rebase2.png

Ahora, falta fusionar la rama feature con la rama master

git checkout master
git rebase feature
# No reorganices el historial público

Nunca debes reorganizar las confirmaciones una vez que se hayan enviado a un repositorio público. La reorganización sustituiría las confirmaciones antiguas por las nuevas y parecería que esa parte del historial de tu proyecto se hubiera desvanecido de repente.

El comando rebase es **_una mala práctica, sobre todo en repositorios remotos. Se debe evitar su uso, pero para efectos de práctica te lo vamos a mostrar, para que hagas tus propios experimentos. Con rebase puedes recoger todos los cambios confirmados en una rama y ponerlos sobre otra.

# Cambiamos a la rama que queremos traer los cambios
git checkout experiment
# Aplicamos rebase para traer los cambios de la rama que queremos 
git rebase master

Aporte creado por: Carlos Eduardo Diaz