Lección 10. Fusionar ramas (merge).
En Git, el proceso de fusionar ramas permiteintegrar los cambios realizados en una rama dentro de otra. Generalmente, esto se hace para unir una rama de trabajo con la rama principal main.
git merge._
El comando git merge se utiliza para fusionar una rama dentro de la rama actual.
git merge rama-implementarEjemplo: fusionar la rama feature-login en main.
Primero, nos colocaremos en la rama que deseamos que se implementen los cambios (en este caso, la main):
git switch mainYa dentro de main, implementaremos la rama feature-login:
git merge feature-loginGit intentará combinar automáticamente los cambios de ambas ramas.
Nota: En ocasiones, al realizar merge, existiran conflictos, tranquilo, esto es algo comun al realizar estas acciones, lo explicaremos más adelante y es algo muy simple de resolver.
Tipos de merge._
Existen principalmente dos tipos de merge:
Fast-forward: ocurre cuando la rama a fusionar NO tiene divergencias. Git simplemente avanza el puntero.
Merge con commit: ocurre cuando ambas ramas tienen cambios distintos y Git crea un nuevo commit de fusión.
Conflictos de fusión._
Un conflicto ocurre cuando Git no puede decidir cómo combinar los cambios, por ejemplo, cuando dos ramas modifican la misma línea de un archivo.
En ese caso, Git detiene el merge y marca el archivo como conflictivo.
Ejemplo de un archivo con conflicto:
<<<<<<< HEAD
console.log("Versión en main");
=======
console.log("Versión en feature");
>>>>>>> feature-loginNota: En principio, este texto puede parecer dificil de entender, pero expliquemoslo un poco más a detalle:
<<<<<<< HEAD -> Este texto indica que aqui empeiza el conflicto, el código de abajo pertenecia a la rama actual en la que nos encontramos posicionado.
console.log("Versión en main"); -> Código que se realiza el conflicto y pertenecia a la rama actual.
======= -> Divide las dos versiones en conflicto. Arriba: nuestra rama actual (HEAD) Abajo: la rama que estamos intentando fusionar.
console.log("Versión en feature"); -> Código que se realiza el conflicto y pertenecia a la rama que intentamos implementar.
>>>>>>> feature-login -> Indica el final del conflicto y el final de la rama que deseamos implementar.
Resolución de conflictos._
Para resolver un conflicto debemos:
Abrir el archivo con conflicto.
Elegir qué código conservar o combinar ambos.
Eliminar los marcadores <<<<<<<, =======, >>>>>>>.
Guardar el archivo.
Agregar el archivo y finalizar el merge.
git add archivo-en-conflicto.js git commit
Conclusión._
El comando git merge es fundamental para integrar trabajo en equipo. Entender los tipos de merge y cómo resolver conflictos te permitirá trabajar de forma segura y profesional con Git.