Café y Código

9. Comparación y conclusión: Git Flow vs Trunk-Based

Dos modelos, dos filosofías

En los módulos anteriores exploraste cada modelo en detalle. Ahora que tenés ambos claros, vale la pena ponerlos frente a frente y entender cuándo conviene cada uno — porque la respuesta no es única: depende del equipo, el tipo de producto y la madurez del proceso de entrega.

Tabla comparativa

Criterio Git Flow Trunk-Based
Ramas activas Varias en paralelo: main, develop, feature/*, release/*, hotfix/*. Solo el trunk (main) y ramas cortas de trabajo que viven horas o pocos días.
Frecuencia de integración Features pueden vivir días o semanas en develop antes de llegar a producción. Varias integraciones al día; el trunk refleja casi siempre el estado más reciente.
Mejor para Releases versionados (semestral, instalables, contratos), equipos que necesitan congelar versiones. Despliegue continuo (SaaS, microservicios), equipos con CI/CD maduro que liberan frecuente.
Riesgo de divergencia Alto si las features viven mucho en develop sin integrarse: el merge final puede ser doloroso. Bajo si el equipo mergea seguido; el conflicto se detecta antes porque las ramas son pequeñas.
Hotfixes Camino explícito: hotfix/* desde mainmain + develop. El parche va al trunk; puede usar feature flags para apagar la funcionalidad afectada de inmediato.
Curva de aprendizaje Media-alta: hay que aprender las reglas de cada tipo de rama y cuándo crearla. Baja en teoría ("todo va a main"), pero exige disciplina real y herramientas maduras.
Coste oculto Mantenimiento de ramas largas, merges entre release, develop y main, y coordinación de versiones. Exige tests confiables, revisión ágil y, a menudo, infraestructura de feature flags. Sin eso, main se vuelve frágil.

¿Y qué es GitHub Flow?

Entre los dos extremos existe un modelo muy popular en equipos medianos: GitHub Flow. Su idea es simple: main siempre está desplegable, y cualquier cambio nuevo pasa por una rama de feature corta + Pull Request hacia main. No hay develop permanente ni ciclos de release formales. Esencialmente es un punto intermedio — más estructura que TBD puro, mucho más simple que Git Flow clásico — y funciona muy bien para equipos web que despliegan con frecuencia pero no tienen CI/CD completamente automatizado.

Guía rápida para elegir

Elegí Git Flow si…

  • Publicás versiones numeradas con ciclos de lanzamiento formales.
  • Necesitás mantener varias versiones activas en paralelo (v2.x y v3.x).
  • El equipo tiene roles definidos y procesos de aprobación por versión.
  • El cliente o el contrato exige releases etiquetadas y auditables.

Elegí Trunk-Based si…

  • Tenés CI/CD maduro y buscás desplegar varias veces al día.
  • El producto es SaaS o web con una sola versión en producción.
  • El equipo revisa PRs rápido y tiene tests confiables.
  • Querés minimizar el riesgo de "merge conflicts gigantes".

Considerá GitHub Flow si…

  • Sos un equipo pequeño o mediano con despliegue frecuente.
  • No necesitás congelar versiones pero tampoco tenés CI completo.
  • Querés más simplicidad que Git Flow sin depender de feature flags.

Conclusión: no hay un ganador universal

Git Flow y Trunk-Based no son rivales — son herramientas diseñadas para contextos distintos. Un equipo que publica firmware embedded con ciclos de seis meses y validación regulatoria tiene necesidades completamente diferentes a una startup de SaaS que despliega cada hora.

Lo que sí es universal: el modelo que elijas debe ser conocido y aplicado de forma consistente por todo el equipo. Un Git Flow aplicado a medias es peor que GitHub Flow bien ejecutado. La mejor estrategia de ramas es la que tu equipo entiende, mantiene y puede explicarle a un desarrollador nuevo en diez minutos.

Con esto cerrás el curso de Git: desde entender qué es un commit hasta los modelos de ramificación que usan los equipos profesionales. El siguiente paso es la práctica: abrí un repo, definí el modelo con tu equipo, y empezá a iterar.

🎓 ¡Curso completo! Dominás el control de versiones con Git: desde git init hasta modelos de colaboración profesional con Git Flow y Trunk-Based.

Quiz final: Git Flow vs Trunk-Based

Último repaso antes de cerrar el curso: comparación, casos de uso y GitHub Flow.

Ko-fi
Donaciones
Apoyá cafeycodigo con un café en Ko-fi. Colaboradores: insignia, muro y zona exclusiva.