GitHub Flow
main siempre desplegable, ramas cortas por cambio, Pull Request y deploy tras el merge.
Contexto
Productos web o SaaS con despliegue continuo y un solo entorno de producción. Es la opción más simple que funciona para la mayoría de equipos pequeños y medianos.
Solución
mainsiempre es desplegable.- Para cada cambio creás una rama con nombre descriptivo desde
main. - Hacés commits y abrís un Pull Request temprano.
- Tras review y CI verde, se mergea a
main. - Se despliega desde
main(idealmente automático).
BASH
git switch -c feature/invoice-pdf
git push -u origin feature/invoice-pdf
# abrir PR → review → CI verde → merge → deploy
#Diferencia con Trunk-Based
Son parientes cercanos. GitHub Flow formaliza el Pull Request como puerta de entrada y admite ramas algo más largas; Trunk-Based empuja a ramas de horas y a integrar aún más seguido. Si tus PRs tardan días en mergearse, en la práctica ya no estás haciendo ni uno ni otro.
Cuándo NO aplicarlo
- Software con varias versiones en producción a la vez.
- Cuando necesitás una rama de staging con aprobaciones formales por ambiente (ver GitLab Flow).
Tradeoffs
| Pro | Contra |
|---|---|
| Muy simple de explicar y adoptar | Sin concepto nativo de versiones/releases |
| Review integrado vía PR | Una rama larga lo degrada a "feature branch eterna" |
| Deploy continuo natural | Depende de CI y de que main esté siempre verde |
#git #branching #github #pull-request