GitFlow Light
Fuente: diagrama flujo-gmg-gitflow_light_release.drawio del equipo GMG,
redibujado aquí con Mermaid para que quede como texto versionado (editable en
este mismo repo) en vez de una imagen suelta.
Documentado originalmente para controlgmg-v2. controlgmg-mix lo
hereda con una sola diferencia confirmada: su rama principal se llama
main, no master — todo lo demás (de dónde nace feature/bugfix, la
regla de no arrastrar ambientes, hotfix directo) se asume igual hasta que el
equipo confirme un flujo propio para Mix.
El flujo
Sección titulada «El flujo»%%{init: { 'gitGraph': { 'mainBranchName': 'master' } } }%%
gitGraph
commit id: "master"
branch develop
branch staging
branch release
checkout master
branch "feature/JIRA-XXX"
commit id: "trabajo"
checkout develop
merge "feature/JIRA-XXX" id: "PR → dev (testeo)"
checkout staging
merge "feature/JIRA-XXX" id: "PR → staging"
checkout release
merge "feature/JIRA-XXX" id: "PR → release"
checkout master
merge release id: "PR → master" tag: "versionado"
branch "hotfix/JIRA-YYY"
commit id: "parche urgente"
checkout master
merge "hotfix/JIRA-YYY" id: "PR directo"
Lee el diagrama así: la misma rama (feature/JIRA-XXX) se abre PR hacia
develop, staging y release por separado — nunca se encadena
develop → staging → release fusionando ambientes entre sí. Es la regla más
importante de este flujo (ver #4 más abajo) y la razón de que se llame
“light”: los ambientes no acumulan merges de otros ambientes, solo reciben
la rama de origen cada vez.
Ambientes y ramas
Sección titulada «Ambientes y ramas»| Ambiente | Rama | URL |
|---|---|---|
| — | bugfix/* · feature/* |
(no se despliega sola) |
| DEV | develop |
dev.controlgmg.com |
| QA | staging |
qa.controlgmg.com |
| — | release |
(zona de amortiguamiento antes de producción) |
| PRD | master |
controlgmg.com |
| — | hotfix/* |
(parche directo a master) |
De dónde nace cada rama
Sección titulada «De dónde nace cada rama»feature/ybugfix/nacen siempre demaster, y se mantienen activas durante todo el flujo — no se borran (ni en ambientes locales) hasta que llegan astaging(ver regla de oro #3).feature/= nueva funcionalidad o característica (ej. un botón nuevo).bugfix/= corrige un error o problema ya existente (ej. un error en el login).- Prefijo obligatorio con el código del issue del tablero —
JIRA-123-mi-commit— tanto en el nombre de la rama como en cada commit. - Sourcetree, GitKraken y clientes similares no soportan crear
bugfixdesde su panel de GitFlow — se crea manualmente.
hotfix/nace también demaster, para parches urgentes de producción. Se mezcla directo amaster, sin pasar pordevelop/staging/release.
Reglas de oro
Sección titulada «Reglas de oro»| # | Regla |
|---|---|
| 1 | Antes de cualquier merge, hacer pull de la rama destino. |
| 2 | El prefijo del issue (JIRA-123-slug) va en el nombre de la rama y en cada commit. |
| 3 | Una rama feature/bugfix no se borra (ni en ambientes locales) hasta que llega a staging. |
| 4 | Lo que se promueve de un ambiente al siguiente es la rama origen, nunca la rama del ambiente — develop/staging no se mezclan hacia adelante. |
| 5 | hotfix/ es la única rama que se salta develop/staging/release e impacta master directo. |