Git Branching

Posted on mié 19 agosto 2015 in General

Una de las principales ventajas de GIT con respecto a otros controladores de versiones como SVN, es la preponderancia que da GIT a los procesos de branch y merge dentro de la herramienta.

Esta capacidad de GIT para crear ramas, permite elaborar nuevas formas de desarrollo, que antes no eran posibles,

Uno de los workflows más populares entre los desarrolladores es el Feature Branch, consistente en desarrollar nueva funcionalidad dentro de su propia rama y una vez terminado el desarrollo, ejecutar un merge con la rama principal.

Feature Branch Workflow

Brancheo por ambiente

En el caso de integración y deploy continuo, podemos utilizar esta capacidad, a fin de aprovechar al máximo las capacidades de GIT a la hora de deployar nuevas versiones de la aplicación a los distintos ambientes.

Para esto, se utiliza principalmente el modelo Gitflow, el cual trabaja con ramas permanentes por ambiente, dejando para producción la rama master.

Gitflow Workflow

En este workflow, la corrección de errores se hace mediante feature branches, los que se añaden simultáneamente a las ramas master y de ambientes de desarrollo y staging (QA) y las nuevas funcionalidades, se desarrollan en una rama derivada de la rama de desarrollo.

Con este tipo de estructuras de repositorio, podemos generar trabajos de integración y deploy automáticos ante un nuevo commit en cada una de las ramas de ambientes.

git