¿Qué es GitFlow?

GitFlow es un modelo de ramificación para Git, creado por Vincent Driessen. Ha llamado mucho la atención porque se adapta muy bien a la colaboración y al escalado del equipo de desarrollo.

GitFlow

Beneficios principales

Desarrollo en paralelo

Una de las grandes cosas de GitFlow es que facilita mucho el desarrollo en paralelo, al aislar el nuevo desarrollo del trabajo terminado. El nuevo desarrollo (como las características y las correcciones de errores que no son de emergencia) se realiza en ramas de características, y sólo se fusiona de nuevo en el cuerpo principal del código cuando el desarrollador (s) es feliz de que el código está listo para la liberación.

Aunque las interrupciones son un BadThing(tm), si se le pide que cambie de una tarea a otra, todo lo que necesita hacer es confirmar sus cambios y luego crear una nueva rama de características para su nueva tarea. Cuando esa tarea esté terminada, simplemente revisa tu rama de características original y puedes continuar donde lo dejaste.

Colaboración

Las ramas de características también facilitan la colaboración de dos o más desarrolladores en la misma característica, porque cada rama de características es una caja de arena donde los únicos cambios son los necesarios para que la nueva característica funcione. Esto hace que sea muy fácil de ver y seguir lo que cada colaborador está haciendo.

Área de lanzamiento

A medida que se completa el nuevo desarrollo, se fusiona de nuevo en la rama de desarrollo, que es un área de almacenamiento para todas las características completadas que aún no han sido liberadas. Así que cuando la próxima versión se ramifica desde develop, automáticamente contendrá todas las cosas nuevas que se han terminado.

Soporte para correcciones de emergencia

GitFlow soporta ramas de hotfix – ramas hechas a partir de una versión etiquetada. Puedes usarlas para hacer un cambio de emergencia, con la seguridad de que el hotfix sólo contendrá tu corrección de emergencia. No hay riesgo de que accidentalmente se fusione un nuevo desarrollo al mismo tiempo.

Cómo funciona

Los nuevos desarrollos (nuevas características, correcciones de errores que no sean de emergencia) se construyen en ramas de características:

Ramas de características de GitFlow

Las ramas de características se ramifican fuera de la rama de desarrollo, y las características y correcciones terminadas se fusionan de nuevo en la rama de desarrollo cuando están listas para su lanzamiento:

Rama de desarrollo de GitFlow

Cuando llega el momento de hacer una liberación, se crea una rama de liberación a partir de develop:

Rama de lanzamiento de KitFlow

El código de la rama de lanzamiento se despliega en un entorno de pruebas adecuado, se prueba y cualquier problema se corrige directamente en la rama de lanzamiento. Este despliegue -> prueba -> corrección -> redistribución -> reprueba el ciclo continúa hasta que esté satisfecho de que la liberación es lo suficientemente buena para liberar a los clientes.

Cuando la liberación está terminada, la rama de liberación se fusiona en master y en develop también, para asegurarse de que cualquier cambio realizado en la rama de liberación no se pierda accidentalmente por el nuevo desarrollo.

Rama master de GitFlow

La rama master sólo registra el código liberado. Los únicos commits a master son fusiones de ramas de liberación y ramas de hotfix.

Las ramas de hotfix se utilizan para crear correcciones de emergencia:

Rama de hotfix de GitFlow

Se ramifican directamente desde una liberación etiquetada en la rama master, y cuando terminan se fusionan de nuevo tanto en master como en develop para asegurarse de que la hotfix no se pierde accidentalmente cuando se produce la siguiente liberación regular.

Categorías: Articles

0 comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *