Sobes.tech
Junior — Middle

¿Cómo distinguir los comandos git rebase y git merge y en qué se diferencian principalmente?

sobes.tech AI

Respuesta de la IA

git merge y git rebase son dos comandos diferentes para integrar cambios de una rama a otra, pero funcionan de manera distinta.

  • git merge crea un nuevo commit de fusión que combina la historia de ambas ramas, manteniendo su desarrollo paralelo. La historia permanece ramificada, mostrando claramente cuándo y cómo ocurrió la fusión.

  • git rebase "reescribe" la historia, moviendo tus commits locales sobre otra rama, creando una historia lineal sin commits de fusión. Esto simplifica la historia, pero cambia los hashes de los commits.

Diferencias principales:

  • Merge mantiene la historia ramificada, rebase hace la historia lineal.
  • Después de un rebase, hay que tener cuidado con las ramas públicas, ya que se reescribe la historia.
  • Merge es más simple y seguro para el trabajo en equipo.

Ejemplo:

# merge
git checkout feature
git merge main

# rebase
git checkout feature
git rebase main

En el primer caso aparecerá un commit de fusión, en el segundo, tus commits serán "movidos" a la cima de main.