Estrategia de Ramificación (Workflow) - Alejoso/Flujo-de-compras GitHub Wiki
El proyecto sigue una estrategia de ramas basada en dos ramas principales y ramas de funcionalidades.
Ramas Principales
main
La rama main contiene la versión estable del proyecto.
Reglas para esta rama:
- La rama no debe modificarse directamente.
- No se permiten commits directos a
main. - Se ha creado un conjunto de reglas en el repositorio para proteger esta rama.
- Los cambios solo pueden integrarse a través de un Pull Request.
La rama main se usa para:
- Versiones estables del sistema
- Entregas del proyecto
- Lanzamientos oficiales
develop
La rama develop es la rama principal de integración donde se combinan las nuevas funcionalidades.
Características de esta rama:
- Los desarrolladores fusionan sus funcionalidades completadas en
develop. - Contiene la versión más reciente del sistema en desarrollo.
- Se usa para probar e integrar múltiples funcionalidades antes de lanzar una nueva versión.
Ramas de Funcionalidades
Todas las nuevas implementaciones deben desarrollarse en ramas de funcionalidades.
Las ramas de funcionalidades se crean a partir de la rama develop.
Convención de nomenclatura:
feature/nombre-funcionalidad
Ejemplos:
feature/product-crud
feature/user-authentication
feature/shopping-cart
feature/order-history
Flujo de Desarrollo
El proceso de desarrollo sigue estos pasos:
- Crear una nueva rama a partir de
develop.
git checkout develop
git checkout -b feature/nombre-funcionalidad
-
Implementar la nueva funcionalidad en la rama de funcionalidad.
-
Hacer commit de los cambios siguiendo las pautas de commits definidas en el proyecto.
-
Subir la rama al repositorio remoto.
git push origin feature/nombre-funcionalidad
-
Crear un Pull Request para fusionar la rama de funcionalidad en
develop. -
Después de la revisión y pruebas, la funcionalidad se fusiona en
develop.
Proceso de Lanzamiento
Cuando el equipo decide crear una versión estable o realizar una entrega del proyecto:
- Se crea un Pull Request desde
develophaciamain. - Se revisan los cambios.
- Una vez aprobado,
developse fusiona enmain.