Ramas de Git y fusión: los fundamentos de la colaboración
Al finalizar este tema
Comprenderá por qué son necesarias las ramas, cómo crearlas y fusionarlas, y cómo resolver conflictos.
Sin ramas
Tres miembros del equipo modifican el mismo código simultáneamente. A crea la función de inicio de sesión, B crea la función de pago y C corrige un error. Cada vez que se fusiona el código surgen conflictos, y resulta difícil rastrear quién cambió qué.
Una rama es un espacio de trabajo independiente para el código. Cada persona trabaja en su propia rama y, una vez completada, se fusiona con la rama principal.
Crear y cambiar de rama
# Verificar la lista de ramasgit branch
# Crear una nueva ramagit branch feature/login
# Cambio de ramagit checkout feature/login
# Crear y cambiar (en un solo paso)git checkout -b feature/loginmain (o master) es la rama principal. Cuando se crea una nueva función, se crea una rama y, una vez completada, se fusiona en main.
Trabajar y realizar commits
# Trabajar en la rama feature/logingit add login.jsgit commit -m "feat: add login form"
git add auth.jsgit commit -m "feat: add authentication logic"Estos cambios solo existen en la rama feature/login. No afectan a la rama main.
Fusión: Combinar
# Regresar a maingit checkout main
# Fusionar feature/login en maingit merge feature/loginLos commits de feature/login se integrarán en main. Si no hay conflictos, el proceso se completará automáticamente.
Resolución de conflictos
Si ambas ramas han modificado la misma sección del mismo archivo, se producirá un conflicto:
<<<<<<< HEAD
const greeting = "Hello";
=======
const greeting = "Hi";
>>>>>>> feature/loginComprueba el contenido comprendido entre <<<<<<< y >>>>>>> y conserva solo el código que necesites:
const greeting = "Hi";Confirmar los cambios y realizar el commit:
git add greeting.jsgit commit -m "fix: resolve merge conflict"Solicitud de extracción (PR)
En la práctica, no se realiza git merge directamente en el entorno local. Se integra mediante una solicitud de extracción.
- Trabajar en una rama y enviar los cambios.
- Crear una solicitud de extracción en GitHub/GitLab.
- Un miembro del equipo revisa el código.
- Una vez aprobada, se fusiona.
Una solicitud de extracción es una petición que pregunta: "¿Puedo integrar este código en la rama principal?". Al pasar por una revisión de código, se reducen los errores y los miembros del equipo pueden comprender los cambios realizados en el código.
Convenciones para los nombres de las ramas
feature/login — Nueva funcionalidad
fix/cart-bug — Corrección de errores
refactor/auth — Refactorización
docs/readme-update — DocumentaciónTipo/descripción Esta forma es la más común. Las reglas varían según el equipo, así que sigue las reglas del proyecto.
Esencial
Una rama es un espacio de trabajo independiente para el código y, una vez completada, se integra mediante una fusión. Si se modifican las mismas partes, se produce un conflicto, que debe resolverse manualmente. En la práctica, se realiza una revisión del código a través de un Pull Request antes de la integración.