Flujo de trabajo a utilizar
Un flujo de trabajo en este contexto es una serie de lineamientos que especifican como debe ser utilizada la herramienta Git para colaborar con un equipo de desarrolladores de manera eficiente.
Git no establece ninguna restricción en cuanto a cómo un equipo utiliza la herramienta; sin embargo, para asegurar consistencia es importante que todo el equipo se guíe por los mismos lineamientos.
Basado en la experiencia previa de los integrantes del equipo se analizaron dos posibles
flujos de trabajo, feature branch workflow y gitflow workflow.
Feature Branch Workflow
La idea principal de este flujo de trabajo es que todo el desarrollo de nuevas funcionalidades debe ir en una rama dedicada para ese propósito, de manera que la rama master nunca contenga código incompleto.
Las reglas de este workflow son bastante básicas, se crea una branch feature a partir de master, una vez completa se abre un pull request para que otros desarrolladores puedan colaborar y si todo se encuentra correcto, se realiza un merge a master.
Gitflow Workflow
Este flujo de trabajo parte del concepto introducido en feature branch workflow añadiendo roles específicos para otras ramas. Es ideal para proyectos que tienen un ciclo de lanzamiento calendarizado, además de ofrecer un mecanismo dedicado al despliegue de soluciones de bugs directo a producción.
Además, Gitflow tiene su propio paquete de herramientas de línea de comandos que actúa como un wrapper para Git; automatizando algunos de los lineamientos.
¿Cómo funciona?
Una rama develop es creada a partir de master.
Una rama release es creada a partir de develop.
Una rama feature es creada a partir de develop.
Cuando feature está completa se hace un merge a develop.
Cuando release está completa se hace un merge a develop y a master.
Si un bug se detecta en master, se crea una rama hotfix a partir de master.
Cuando hotfix está completa se hace un merge a develop y a master.
Conclusión
Ambos flujos de trabajo parten de una idea sencilla, mantener a la rama master libre de bugs y encapsular el desarrollo en otras ramas. Para este proyecto en específico se opta por utilizar el Gitflow Workflow por dos razones particulares:
El proyecto está calendarizado para tener un lanzamiento cada dos semanas; Gitflow Workflow está particularmente enfocado a simplificar las tareas previas a los despliegues mediante su rama release.
Dada la naturaleza didáctica del proyecto, resulta útil tener un historial de versiones fácil de navegar. Gitflow Workflow por naturaleza mantiene este historial en cada commit de la rama master.
Referencias:
https://www.atlassian.com/git/tutorials/comparing-workflows
Publicado por: Brayan Chinchilla
Comentarios
Publicar un comentario