-
main(omaster): Siempre lista para producción.- Solo código estable y desplegable.
- Rama protegida (requiere revisión de PR).
-
develop: Rama de integración.- Código más reciente, ya probado.
- Despliegue automático en staging.
-
Feature branches (funcionalidades)
- Nombre:
feature/<descripcion-corta> - Se crea desde:
develop - Se fusiona en:
develop - Uso: Desarrollar nuevas funcionalidades.
- Nombre:
-
Bugfix branches (correcciones menores)
- Nombre:
bugfix/<numero-o-descripcion> - Se crea desde:
develop - Se fusiona en:
develop - Uso: Corregir errores no críticos.
- Nombre:
-
Hotfix branches (correcciones críticas)
- Nombre:
hotfix/<numero-o-descripcion> - Se crea desde:
main - Se fusiona en:
mainydevelop - Uso: Arreglos urgentes en producción.
- Nombre:
-
Release branches (opcional)
- Nombre:
release/<version> - Se crea desde:
develop - Se fusiona en:
mainydevelop - Uso: Preparar despliegues a producción (ajustes finales, pruebas).
- Nombre:
-
Pipelines en Pull Requests/Merge Requests:
- Ejecutan tests, linting y builds.
- Bloquean merge si falla.
-
Rama develop:
- Despliegue automático en entorno de staging.
-
Rama main:
- Despliegue automático en producción.
-
Crear una funcionalidad:
git checkout -b feature/pagina-login develop -
Subir cambios y abrir PR hacia
develop. -
CI ejecuta tests en el PR.
-
Merge a
developsi pasa. -
developse despliega en staging. -
Cuando está listo para producción:
git checkout main git merge develop git tag v1.0.0 git push --tags -
Despliegue en producción.
main ----*-----------o------>
\ /
\ /
release/x
^
/
develop --o----o----o--------->
\ \
feature/a
✔️ Protege las ramas main y develop con reglas.
✔️ Exige revisiones de PR.
✔️ Requiere CI exitoso antes del merge.
✔️ Automatiza el versionado con tags.
✔️ Mantén las funcionalidades pequeñas y enfocadas.