Estrategias de branching (Git Flow, Trunk Based Development)

Domina Estrategias de branching (Git Flow, Trunk Based Development) con Git y GitLab profesional

Módulo 3 ⏱️ 2 horas 🛠️ Git CLI 🦊 GitLab 🤖 ChatGPT-4 🚀 Batch Mode 🎨 Visual Cards

1. INTRODUCCIÓN TÉCNICA Las estrategias de branching son una parte esencial del trabajo con Git y GitLab en un entorno profesional. Permiten a los equipos colaborar de manera eficiente en un proyecto, al tiempo que mantienen un historial limpio y comprensible de los cambios. Una estrategia de branching bien planificada ayuda a evitar conflictos innecesarios, facilita el seguimiento de bugs y acelera el proceso de lanzamiento de nuevas características. En este módulo, nos centraremos en dos de las estrategias más populares: Git Flow y Trunk Based Development. Ambas tienen ventajas y desventajas únicas, y la elección depende en gran medida del tamaño del equipo, la complejidad del proyecto y la frecuencia de los lanzamientos.

2. COMANDOS Y EJEMPLOS PRÁCTICOS AVANZADOS - Inicializar un repositorio con `git init` y clonarlo con `git clone`. Ejemplo: `git clone --depth 1 https://github.com/example/repo.git` clonará el repositorio sin el historial completo, lo que puede ahorrar tiempo y espacio. - Añadir cambios selectivamente con `git add -p`, que permite revisar cada cambio antes de confirmarlo. - Hacer commit de los cambios con `git commit`, siguiendo las convenciones de mensajes de commit como "fix: corregir error de cálculo". - Realizar seguimiento de las ramas remotas con `git push -u origin branch-name`. - Crear y cambiar entre ramas con `git checkout -b branch-name` o `git switch branch-name`. - Mezclar cambios con `git merge`, usando estrategias como `--no-ff` para mantener un historial más legible. - Filtrar y formatear el historial con `git log --pretty=oneline --abbrev-commit --graph`. - Rebasar la historia con `git rebase` para mantener un historial lineal.

Ejercicios Prácticos Visuales

1

"Crear y fusionar una rama de características"

Básico 8-13 min
Ejercicio 1: "Crear y fusionar una rama de características" Objetivo: Aprender a crear una rama, hacer cambios y luego fusionarla de nuevo en la rama principal. Dificultad: Fácil Tiempo estimado: 15 minutos Instrucciones:
1. Crear una nueva rama con `git checkout -b feature-branch`. 2. Hacer cambios y confirmarlos con `git add .` y `git commit -m "message"`. 3. Cambiar de nuevo a la rama principal con `git checkout main`. 4. Fusionar la rama de características con `git merge feature-branch`. Criterios de éxito: Los cambios de la rama de características están ahora en la rama principal. Tips: Usa `git log --graph` para visualizar el historial de fusiones.

4. PROBLEMAS COMUNES Y SOLUCIONES AVANZADAS - Error: "¡Tu rama está adelante de 'origin/master' por 1 commit!" Diagnóstico: Has hecho un commit pero no lo has empujado a la rama remota. Solución: Usa `git push origin master` para empujar tus cambios. - Error: "¡Conflicto de fusión!" Diagnóstico: Dos ramas que intentas fusionar han modificado la misma parte de un archivo. Solución: Abre el archivo en conflicto, resuelve las diferencias y luego haz commit de la versión resuelta.

5. MEJORES PRÁCTICAS EMPRESARIALES - Mantén las ramas de características cortas y fusiona con frecuencia. - Usa mensajes de commit descriptivos y significativos. - Evita hacer commit de archivos grandes o binarios. - Realiza un pull antes de empujar para evitar conflictos innecesarios. - Usa `git rebase` en lugar de `git merge` para un historial más limpio.