Ramas Principales
Para registrar el historial del proyecto vamos a usar la ramas principales main y develop, de las cuales solo existe una de cada tipo y que no podrán recibir código de forma directa a través de commit, siempre tiene que recibir código a través de las ramas de apoyo:
- main: Es la rama principal y donde se encuentra la versión oficial y última definitiva del proyecto. Se usara una tag para identificar el número de versión.
- develop: Contiene el código de desarrollo de la siguiente versión planificada del proyecto. En ella se incluirán cada una de las nuevas características que se desarrollen y será la que se le hagan los test y cuando esté todo verificado el deploy. Una vez el deploy funcione se integrarán los cambios a la rama main
En la rama main no se hace push ni pull request, todo se hará en develop hasta que esté todo verificado y se decida actualizar los cambios de la rama develop a main
Ramas de apoyo
Las ramas de apoyo las usaremos para que los desarrolladores podamos trabajar en paralelo sin afectar a las ramas principales. Será una vez finalizado el desarrollo cuando se incorpore la esta rama de apoyo a la rama develop.
Estas ramas tienen un principio y un fin, ya que cuando se mergea con la rama develop desaparecen.
Las ramas de apoyo son:
- feature: Estas ramas tienen que surgir de la rama develop. Cada una de estas ramas almacenan código de desarrollo con nuevas características y requisitos. Una vez terminado su desarrollo, se incorporarán nuevamente a la rama develop, que contendrá la última versión de código en desarrollo. Cuando se incorpora a la rama develop se elimina.
- hotfix: la utilizaremos para arreglar código y bugs, por haberse detectado un defecto crítico o que el cliente haya pedido algún cambio. Esta rama se usará de manera excepcional puesto que el deploy se hará de manera contínua y siempre testeado. Esta rama siempre saldrá de main y una vez hechos los cambios se devuelve a develop, se hace el deploy y se agrega a main.

Pasos a seguir
- Creación de rama main
- Creacion de rama develop
- Si hay una nueva característica de desarrollo se crea una rama feature
- Se desarrolla en la rama feature y se hacen los commits
- Una vez finalizados los cambios en feature se hace una Pull Request a develop
- A través de Github Actions, revisión de test y equipo se mergea a la rama develop
- Se borra la rama feature creada para este propósito
- Se hace deploy de la rama develop
- Si hubiese algo que solucionar se crea una rama hotfix
- Una vez funciona el deploy se mergea develop con main
