Macklus.Net

Manual (básico) de git-flow

Si eres programador seguramente conoceras git, el sistema de control de versiones más utilizado en la actualidad. Una de sus principales ventajas, es que se pueden crear ramas de una forma rápida y sencilla, lo que nos permite organizar nuestro trabajo para no interferir con el trabajo de los demás.

Sobre esa base, nace git-flow, una extensión a git para gestionar las ramas de nuestro repositorio de forma coordinada, conocida y útil.

Las bases de git-flow

Las bases principales de git-flow son:

El objetivo es mantener siempre el código lo más aislado posible de las ramas donde trabajen más personas.

Trabajando con «features»

Las features serán la base de nuestro trabajo diario con git-flow. En resumen, creamos una rama a partir de develop, donde iremos trabajando. Una vez que hemos terminado añadiremos el código a la rama develop, crearemos una nueva feature y seguiremos el trabajo normal.

Los pasos para trabajar con una feature (por ejemplo usuarios), serían:

Trabajando con «hotfix»

Un hotfix es un cambio urgente (normalmente asociado a un fallo de seguridad en nuestro código), por lo que aquí vamos a trabajar con código de la rama master, y al finalizar guardaremos los cambios en las ramas master y develop (para que el fallo se arregle en ambas).

Los comandos son iguales, pero cambiando feature por hotfix:

Trabajando con «releases»

Una release o nueva versión de código se genera a partir de los cambios que hayan sido publicados en la rama develop, es decir, que nos limitamos a coger los cambios pendientes, y generamos una nueva versión con ellos.

El proceso es el mismo de siempre:

Después de crear la nueva release, podemos editar los archivos necesarios para cambiar la versión, añadir información al README.md, etc

Usando git-flow de forma diaria.

Aunque cuando empezamos un proyecto siempre solemos pensar que no vamos a necesitar ramas ni nada complicado, y que podemos hacerlo todo en develop (o incluso en master), debemos acostumbrarnos a trabajar siempre con un sistema de ramas concreto, y en mi caso git-flow es la solución más óptima y cómoda de todas las que he probado.

Espero que os sea de tanta utilidad como a mi.