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-featureEsto hace merge en almanaque y borra la rama feature.
- Base:
almanaque - Objetivo:
mainyalmanaque - 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.ZEsto 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:
mainyalmanaque - 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-hotfixEsto 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
pushdespués de cadafinishya que Git Flow no lo hace automáticamente. - Si necesitas colaborar con otros, realiza
pullfrecuentemente 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.