Este repositorio utiliza Git Flow como modelo de ramificación para organizar el trabajo de desarrollo. A continuación se describe detalladamente cómo trabajar correctamente con cada tipo de rama (feature
, release
, hotfix
) en este proyecto.
✅ Nota importante: En el proyecto Calculadoras la rama de desarrollo se llama
almanaque
(en lugar dedevelop
).
graph TD;
A[almanaque] -->|feature start| B[feature/xxx];
B -->|feature finish| A;
A -->|release start| C[release/x.y.z];
C -->|release finish| D[main];
C -->|release finish| A;
C -->|release finish| T((tag));
D -->|hotfix start| E[hotfix/xxx];
E -->|hotfix finish| D;
E -->|hotfix finish| A;
E -->|hotfix finish| T2((tag));
- Base:
almanaque
- Objetivo:
almanaque
- Descripción: Se utiliza para desarrollar nuevas características o mejoras.
git flow feature start nombre-feature
# ...trabaja, commitea...
git flow feature finish nombre-feature
Esto hace merge en almanaque
y borra la rama feature.
- Base:
almanaque
- Objetivo:
main
yalmanaque
- Descripción: Se utiliza cuando se quiere preparar un nuevo lanzamiento (release). Permite hacer pruebas, pequeños arreglos y documentar la versión.
git flow release start vX.Y.Z
# ...ajustes finales, commits...
git flow release finish vX.Y.Z
Esto hace merge en main
, almanaque
, crea un tag
y elimina la rama release.
🔁 Importante: Después del
release finish
, debes ejecutar:
git push origin main
git push origin almanaque
git push --tags
- Base:
main
- Objetivo:
main
yalmanaque
- Descripción: Se usa para corregir errores críticos en producción.
git flow hotfix start nombre-hotfix
# ...solucionar el bug...
git flow hotfix finish nombre-hotfix
Esto hace merge en main
, almanaque
, crea un tag
y elimina la rama hotfix.
🔁 Importante: Después del
hotfix finish
, recuerda:
git push origin main
git push origin almanaque
git push --tags
- Siempre asegúrate de estar en la rama correcta antes de crear una nueva rama con Git Flow.
- Usa nombres descriptivos para features y hotfixes.
- Realiza
push
después de cadafinish
ya que Git Flow no lo hace automáticamente. - Si necesitas colaborar con otros, realiza
pull
frecuentemente en la rama de trabajo`.
develop
: Rama principal de desarrollo (en Calculadoras se llamaalmanaque
).main
: Rama estable usada para producción.feature/
: Ramas de desarrollo de nuevas funcionalidades.release/
: Ramas para preparación de lanzamientos.hotfix/
: Ramas para correcciones urgentes en producción.
Así mantenemos el proyecto organizado y predecible. Siguiendo este flujo, podrás trabajar colaborativamente sin conflictos y con versiones controladas para desarrollo, testing y producción.