Cómo actualizar una rama en Git a partir de otra

Mantener nuestras ramas sincronizadas en Git usando git checkout y git merge.

actualizar-rama-a-otra-git

Cuando trabajamos en proyectos con varias ramas activas, suele pasar que una rama se quede desactualizada respecto a otra. Esto puede ser un problema si luego necesitamos integrarlas o simplemente queremos que una rama secundaria tenga los últimos cambios. Por eso, es útil saber cómo actualizar una rama en Git tomando como referencia otra.

Es algo que te pasará día si y día también al trabajar en proyectos Git. Vams a ver cómo hacerlo.

¿Qué significa “actualizar una rama”?

En términos simples: queremos que una rama tenga los cambios que ya existen en otra rama. Esto se hace para que el trabajo que estamos haciendo se base en la versión más reciente del proyecto.

La forma clásica de hacerlo es usar dos comandos:

Terminal
git checkout rama-destino
git merge rama-origen

Ejemplo paso a paso

Supongamos que estamos desarrollando una nueva funcionalidad en la rama feature/nueva-funcionalidad, y queremos actualizarla con los últimos cambios que otros compañeros han subido a main.

  1. Nos aseguramos de estar en la rama que queremos actualizar:
Terminal
git checkout feature/nueva-funcionalidad
  1. Traemos los últimos cambios del repositorio remoto (si es que hay):
Terminal
git fetch origin
  1. Fusionamos main dentro de feature/nueva-funcionalidad:
Terminal
git merge origin/main

Nota: Si ya teníamos una copia local de main, podríamos haber hecho git merge main, pero al usar origin/main nos aseguramos de tener la versión más reciente del repositorio remoto.

  1. Resolución de conflictos (si aparecen):

A veces, Git no puede decidir cómo combinar los cambios, y nos toca intervenir. Veremos algo así:

Auto-merging archivo.txt
CONFLICT (content): Merge conflict in archivo.txt
Automatic merge failed; fix conflicts and then commit the result.

Editamos los archivos conflictivos, elegimos qué líneas mantener y luego hacemos:

Terminal
git add archivo.txt
git commit

Git abrirá un mensaje de commit prellenado que podemos dejar tal cual o ajustar, según el caso.

¿Qué logramos con esto?

Con esos pasos, nuestra rama feature/nueva-funcionalidad queda al día con todo lo que ha pasado en main. Esto es útil si queremos evitar sorpresas al hacer un futuro merge o pull request. Además, nos permite detectar a tiempo si nuestros cambios van a causar conflictos o si hay ajustes necesarios antes de seguir desarrollando.

Alternativa rápida: git pull origin main

En algunos contextos, también se puede usar este comando:

Terminal
git pull origin main

Esto hace, en una sola línea, lo mismo que fetch + merge. Pero ojo: si preferimos tener más control, es recomendable hacerlo por separado.

Resumen

Actualizar una rama desde otra en Git no es complicado, pero vale la pena hacerlo con cuidado. Nos ayuda a mantener el código limpio y evitar dolores de cabeza más adelante.

En resumen:

  • Nos cambiamos a la rama que queremos poner al día.
  • Traemos los últimos cambios con fetch.
  • Fusionamos con merge.
  • Resolvemos cualquier conflicto y seguimos trabajando.

El proceso es sencillo y al trabajar con Git lo usuarás a diario.