En la mencionada entrada del blog de Vincent Driessen podemos ver cómo el modelo se estructura en torno a dos ramas nucleares dentro del repositorio "origin": la rama "master" que aglutina las sucesivas versiones ("releases") puestas en producción, y la rama "develop" que recoge el trabajo en marcha de cara hacia una nueva release. Cuando el código en la rama develop alcanza un punto de estabilidad como para ser puesto en producción, se fusiona en la rama master con una nueva etiqueta de versión en producción (0.x, 1.x, 2.x,...).
Además de estas dos ramas principales que tienen un tiempo de vida indefinido, el modelo se complementa con otras ramas de apoyo que tienen un tiempo de vida limitado mientras cumplen su cometido. Estas ramas son de tres tipos:
- Ramas "feature", que se derivan de la rama develop y se fusionarán también en ella. Esta ramas se crean habitualmente en repositorios auxiliares de desarrollo (no en el "origin") y recogen el desarrollo de funcionalidades para versiones futuras, aunque de momento no se sepa a ciencia cierta en qué versión del producto se incorporarán (o de hecho si finalmente serán incorporadas o descartadas).
- Ramas "release", como apoyo para la preparación de una nueva versión a poner en producción. Se derivan de la rama develop y se utiliza en el momento en que dicha rama contiene prácticamente lo que se desea que se convierta en la nueva versión.
- Ramas "hotfix", que se derivan de la rama master y se utilizan para desarrollos sobrevenidos y no planificados de cara a mejorar la versión puesta en producción (por ejemplo cuando se identifica un error crítico en dicha versión).
Además del detalle recogido en la entrada original de Vincent Driessen, podemos encontrar varios recursos online que nos facilitan su comprensión y puesta en práctica, como por ejemplo esta hoja resumen elaborada por Daniel Kummer (disponible en varios idiomas, castellano incluido).
Además de estas dos ramas principales que tienen un tiempo de vida indefinido, el modelo se complementa con otras ramas de apoyo que tienen un tiempo de vida limitado mientras cumplen su cometido. Estas ramas son de tres tipos:
- Ramas "feature", que se derivan de la rama develop y se fusionarán también en ella. Esta ramas se crean habitualmente en repositorios auxiliares de desarrollo (no en el "origin") y recogen el desarrollo de funcionalidades para versiones futuras, aunque de momento no se sepa a ciencia cierta en qué versión del producto se incorporarán (o de hecho si finalmente serán incorporadas o descartadas).
- Ramas "release", como apoyo para la preparación de una nueva versión a poner en producción. Se derivan de la rama develop y se utiliza en el momento en que dicha rama contiene prácticamente lo que se desea que se convierta en la nueva versión.
- Ramas "hotfix", que se derivan de la rama master y se utilizan para desarrollos sobrevenidos y no planificados de cara a mejorar la versión puesta en producción (por ejemplo cuando se identifica un error crítico en dicha versión).
Además del detalle recogido en la entrada original de Vincent Driessen, podemos encontrar varios recursos online que nos facilitan su comprensión y puesta en práctica, como por ejemplo esta hoja resumen elaborada por Daniel Kummer (disponible en varios idiomas, castellano incluido).
No hay comentarios:
Publicar un comentario