Git y Github
Fusionado de ramas (merging)
En este módulo, exploraremos el proceso de fusionado de ramas (merging) en Git. La fusión es una acción crítica para combinar el trabajo de diferentes ramas en una única rama, manteniendo un historial claro y coherente del proyecto.
¿Qué es el fusionado de ramas (merging)?
El fusionado de ramas es el proceso de tomar los cambios de una rama y combinarlos en otra rama. Esto es esencial cuando diferentes desarrolladores trabajan en varias características o correcciones de errores simultáneamente y es necesario consolidar todos los cambios en la rama principal del proyecto.
Tipos de fusión
Fusión de avance rápido (Fast-forward merge)
Ocurre cuando la rama de destino no tiene commits adicionales desde que se ha generado la rama fuente. En este caso, la rama objetivo simplemente avanza al último commit de la rama fuente.
bash
Fusión sin avance rápido (Non-fast-forward merge)
Se crea un nuevo commit de fusión que une las dos historias de commits cuando la rama de destino tiene commits adicionales después de la creación de la rama fuente.
bash
Ejemplo práctico de fusión
Crear y fusionar una rama
-
Crear una nueva rama:
bash -
Realizar cambios y comitear en la nueva rama:
bash -
Cambiar a la rama principal:
bash -
Fusionar la rama de características en la rama principal:
bashSi se trata de una fusión sin avance rápido:
bash -
Eliminar la rama fusionada si no es necesaria:
bash
Resolución de conflictos
A veces, los cambios en las diferentes ramas pueden entrar en conflicto. Git intentará fusionar los cambios automáticamente, pero si no puede, te pedirá resolver los conflictos manualmente.
Cómo ver conflictos
Si hay conflictos, Git te lo indicará y modificará los archivos conflictivos para incluir marcadores que señalen las diferencias.
bash
- Introducción a Git y GitHub
- Instalación y configuración de Git
- Fundamentos de control de versiones
- Creación y clonación de repositorios
- Realización de commits y seguimiento de cambios
- Gestión de ramas (branching)
- Fusionado de ramas (merging)
- Resolución de conflictos
- Trabajo colaborativo en GitHub
- Pull requests y revisiones de código
- Uso avanzado de Git (rebase, cherry-pick, etc.)
- Automatización con Git hooks
- Integración continua con GitHub Actions
- Gestión de versiones y lanzamiento de releases
- Conclusiones y mejores prácticas en Git y GitHub