GitFlow
El sistema GitFlow está basado en ramas específicas con roles muy bien definidos, las ramas principales son:
- La rama Main es el proyecto en producción. Es la versión a la que tienen acceso los usuarios. En ningún caso deberías estar en esta rama, solo se usa para guardar las cosas.
- La rama Development es donde realmente se desarrollará el proyecto. Aquí es donde se hacen cambios y se desarrollan características sin afectar a los usuarios. Se mergea a la rama principal Main.
- Las ramas Feature son aquellas ramas donde se desarrollan características. Es útil crear una rama para cada característica para mantener ordenado y limpio el proyecto. Permite que varios equipos trabajen en su característica sin que se afecten entre ellos. Se mergea a la rama Development.
Adicionalmente existen 2 ramas extra entre las ramas Main y Development.
- La rama Release es un adelanto de lo que vendrá luego. Añade las características "estables" de la rama Development al proyecto en producción. Se abre en Development porque tomará los cambios más recientes, se mergea en Main porque llevará esos cambios a producción y se cierra en Development porque ya actualizó la versión de producción con los últimos cambios de Development.
- La rama Hotfix se usa para arreglar errores que aparezcan en el proyecto en producción. Se abre directamente de la rama Main porque va a arreglar un problema y se cierra en la misma porque ya arregló el problema.
GitFlow permite mantener actualizadas todas las ramas. Puedes crear, eliminar, mergear, añadir tags, moverse entre ramas según el flujo establecido sin necesidad de hacerlo manualmente usando un plugin para Git.
brew install git-flow
Para comenzar a trabajar con GitFlow debes iniciarlo y configurarlo con:
git flow init