Git: Comandos (git rebase, git merge)

Apr. 18, 2023

En este post veremos el uso de git rebase, un comando que nos ayuda a mover una rama a otro punto del árbol. Sin embargo, es importante tener en cuenta que este comando reescribe el historial de commits, por lo que debemos tener cuidado al usarlo, especialmente en el repositorio remoto. También veremos las diferencias entre git rebase y git merge…🐤

Git Rebase

Ya hemos trabajado con ramas y vimos cómo fusionarlas con otra usando git merge, pero en esta ocasión utilizaremos git rebase.

g1

Este comando nos permite mover una rama completa a otro punto del árbol.

Tanto git merge como git rebase son comandos útiles, pero tienen diferencias importantes que debemos tener en cuenta al trabajar con ellos.

Es importante destacar que usar git rebase es arriesgado, ya que reescribe el historial de commits. Si se realiza este comando en el repositorio remoto, puede generar conflictos cuando otros desarrolladores intenten obtener los últimos cambios del repositorio remoto.

Un ejemplo de cómo usar git rebase es:

1.- Creamos una nueva rama (rama2) y realizamos un nueva funcionalidad, añadiendo commits.

2.- Realizamos unos cambios en la rama master, añadimos commits.

3.- Volvemos a rama2 y hacemos un git rebase para traernos los cambios de master.

git rebase master

g2

Gráficamente esto fue lo que sucedió, y lo que sucedería si usáramos git merge:

git7

Podemos notar que el orden como se acomodaron los commits fue diferente, y si usamos git merge se creará un commit extra.

Si usamos el comando:

git log --oneline --graph

Es importante tener en cuenta que al usar este comando se puede modificar el orden de los commits visualmente para entender lo que sucedió con las ramas.

Sin embargo, el orden correcto de los commits se muestra utilizando solamente:

git log --oneline

Recuerda usar git rebase solo en el repositorio local. 😃

Por el momento podemos dar por finalizado este blog de git rebase comparándolo con git merge. 🚀

Deseando que te encuentres bien, te saluda Ulises🤵… Sígueme en mis redes GitHub LinkedIn Twitter