Usar ramas permite aislar cambios y errores en una historia paralela a la principal del repositorio o linea base. Usar una estrategia permite estandarizar en el equipo de desarrollo el cómo utilizar ramas y cómo unirlas.

Feature Branching

Se crea una rama por cada nueva funcionalidad y solo se une a la historia principal cuando está terminada y sin errores. Esto significa que main no debería tener código que no funciona.

Release Branching

Se crea una rama por cada release a entregar.

Task Branching

Se crea una rama por cada tarea concreta. Estas ramas son las más minimalistas. Propuesto por Atlassian.

Gitflow Workflow

Es una combinación de las otras estrategias y es el estándar actual de la industria. Tiene en cuenta la integración continua. Surge de un blog de 2010 por Vincent Driessen. Las ramas que define son:

  • Main: es la rama principal que representa a producción.
  • Develop: la rama más usada, representa a la versión actual de desarrollo.
  • Release: cada rama que sea candidata a mergearse a main y pasar a producción.
  • Hotfixes: ramas para arreglar rápidamente algún defecto.
  • Features: ramas que agregan una funcionalidad nueva.