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:

  1. Crear una nueva rama a partir de develop.
git checkout develop
git checkout -b feature/nombre-funcionalidad
  1. Implementar la nueva funcionalidad en la rama de funcionalidad.

  2. Hacer commit de los cambios siguiendo las pautas de commits definidas en el proyecto.

  3. Subir la rama al repositorio remoto.

git push origin feature/nombre-funcionalidad
  1. Crear un Pull Request para fusionar la rama de funcionalidad en develop.

  2. 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:

  1. Se crea un Pull Request desde develop hacia main.
  2. Se revisan los cambios.
  3. Una vez aprobado, develop se fusiona en main.