
Trabajando con el flujo de git
En Lombao SURL, tenemos una metodología para el trabajo con Git. Esta metodología la compartimos con la comunidad esperando que les sirva en alguna ocasión.
Definición de ramas
Rama
Descripción
master
Rama de producción. Solo se pone el código que se considera estable y listo para que los usuarios finales accedan.
develop
Rama de desarrollo. Rama que integra el código de las nuevas funcionalidades.
feature/[nombre-de-la-funcionalidad]
Rama que agrupa las tareas que resuelven una funcionalidad.
release-[version-superior].[version-media].[version-inferior]
Se utilizan para fusionar la rama de desarrollo con la rama máster. En esta rama se pueden hacer los ajustes necesarios para estabilizar el código que se va a fusionar con la rama máster.
hotfix-[version-superior].[version-media].[version-inferior]
Las ramas de revisión se crean debido a la necesidad de actuar inmediatamente frente a algún error detectado en una versión que está en producción. Cuando se detecta un error crítico en una versión de producción que debe ser resuelto inmediatamente.
FEATURE/[NOMBRE-DE-LA-FUNCIONALIDAD]
Rol Analista
Cada rama, es equivalente a una historia de usuario. Cada historia de usuario debe ser equivalente a un hito definido en el gitlab.
Rol Desarrollador
Crear
git checkout -b feature/new-user-registration
Fusionar
git checkout develop
git merge --no-ff feature/new-user-registration
Eliminar
git branch -d feature/new-user-registration
RELEASE-[VERSION-SUPERIOR].[VERSION-MEDIA].[VERSION-INFERIOR]
Rol Analista
Se debe tomar en cuenta la referencia de los niveles de las versiones. Se debe definir en el hito el nombre del release.
Rol Desarrollador
Crear
git checkout -b release-1.2.3 develop
Fusionar
git checkout master
git merge --no-ff release-1.2.3
NOTA: Adicionalmente, deberíamos crear una etiqueta (tag) como referencia a la nueva versión creada:
git tag -a '1.2.3'
git checkout develop
git merge --no-ff release-1.2.3
Eliminar
git branch -d release-1.2.3
HOTFIX-[VERSIÓN-SUPERIOR].[VERSIÓN-MEDIA].[VERSIÓN-INFERIOR]
Rol Analista
Se debe tomar en cuenta la referencia de los niveles de las versiones.
Rol Desarrollador
Se crean a partir de la rama máster
Crear
git checkout -b hotfix-1.2.3 master
Fusionar
git checkout master
git merge --no-ff hotfix-1.2.3
git tag -a 1.2.3
git checkout develop
git merge --no-ff hotfix-1.2.3
NOTA: Cuando en el momento de realizar la fusión de la rama de revisión exista una rama de lanzamiento creada, en vez de fusionar la rama de revisión con la rama de desarrollo, fusionaremos la rama de revisión con la rama de lanzamiento.
ELIMINAR RAMA LOCALMENTE
git branch -d hotfix-1.2.3
ELIMINANDO RAMA DEL SERVIDOR (REMOTE)
git push origin --delete <nombre del a rama>