Ir al contenido principal

Mejora el flujo de trabajo en tus proyectos con Gitflow


Usar Git y GitHub de forma correcta y organizada puede lograr que el desarrollo de nuestro producto se convierta en un proceso más profesional y menos doloroso. En este artículo conoceremos uno de los métodos más usados y populares para lograrlo: Gitflow.
Este modelo de trabajo es sólo uno de los muchos existentes; y no es estrictamente necesario que se adopte al 100%. Consiste en el uso continuo de branches (o ramas) eissues para lograr hacer cosas tan simples como mantener el código libre de errores o hasta implementar sistemas de integración para automatizar nuestro deployment y/o testing.
Si quieres aprender más acerca de esto y convertirte en todo un experto, te recomiendo tomar el Curso Profesional de Git y Github que tenemos en Platzi.

Ramas principales

Comenzaremos con las ramas master y develop, que serán nuestras guías durante todo el desarrollo de manera permanente.
La rama master es aquella que siempre usamos por default cuando iniciamos un proyecto en Git o Github. Su regla principal consiste en que, en lugar de tener todo tipo de código, sólo contendrá el que ya está listo para producción; y nada más. Pensemos que todo el código que esté aquí, en cualquiera de sus versiones debe estar listo para ser lanzado en cualquier momento.
Por otro lado, la rama develop contiene código con los nuevos desarrollos y características que se incorporarán en el próximo release. Por esta razón es también conocida como la rama de integración. En el momento en el que todo su código esté listo para producción y se ha probado lo suficiente, podremos integrarlo a master. 

Ramas secundarias

A diferencia de las ramas primarias, estas no tienen un tiempo de vida perpetuo. Sólo funcionan como apoyo mientras escribimos código que aún no puede ser integrado a develop y, mucho menos, a master. Es importante mencionar que, en cuanto este código sea integrado a develop, esta rama deberá dejar de existir.
En este caso, nos enfrentamos a diversas situaciones: podemos estar en el inicio del desarrollo de un nuevo feature, en el punto en el que estamos preparando código para ser liberado o en el caso en el que tenemos que corregir código de manera imprevista y rápida para corregir un bug.
A continuación explicaré qué pasa en cada caso:

Desarrollando una nuevo feature

Las ramas de features suelen derivarse de develop y, una vez que estén listas, deberán ser incorporadas de  regreso a develop.
La vida de este branch dura tanto como dure el desarrollo y sólo deben vivir en los repositorios de los developers y nunca en origin. Son útiles porque una nueva característica no tiene que ser integrada necesariamente a develop. Esto depende de la utilidad y necesidad de la misma.

Liberando una nueva versión

Las ramas de release deben ser ramas creadas a partir de develop con el único fin de agregar últimos detalles al código, corregir algunos fallos menores y agregar meta-data como versiones o autores. Una vez que esta rama cumple su objetivo, debe ser integrada a master y a develop de nuevo.

Salvando a nuestros usuarios

Las ramas de hotfix son aquellas que sirven para resolver bugs de último momento que de alguna manera inesperada pasaron a producción sin ser probadas. Estos parches deben ser un derivado de master y deben incorporarse de regreso; así como a develop.
Como mencioné anteriormente, este modelo de trabajo no es el único que existe; pero es de los más útiles y sencillos de comprender. Si quieres aprender cómo funciona y empezar a implementarlo en tus proyectos, te recomiendo registrarte al curso de Git y GitHub en Platzi.

Comentarios

Entradas más populares de este blog

Sailfish OS certificado como alternativa a Android en Rusia

Los finlandeses de  Jolla  están de enhorabuena, especialmente si recordamos que no hace mucho estaban casi en la bancarrota, tras embarcarse en una aventura algo arriesgada para la fabricación de tablets. Ahora la vida les sonríe: las autoridades rusas  han certificado  el  sistema operativo Sailfish OS  para su uso por parte del gobierno y corporaciones del país. Se trata de un sistema con base open source ( Linux ), pero con una  capa privativa  presente en algunos de sus componentes como puede ser la interfaz o determinadas aplicaciones. La gran ventaja de Sailfish respecto a otros competidores en el mercado del smartphone –como el ya desaparecido  Firefox OS  o  Ubuntu –, es su  compatibilidad con las aplicaciones de Android. Las intenciones de Rusia es  reducir el uso de sistemas operativos extranjeros  (Android, iOS) en móviles del 95% actual  a la mitad en 2025 . Disminuir la  dependen...

Selfies en 3D llegan a Venezuela y hasta las podrás imprimir en plástico

La empresa 3DUP lanzó al mercado venezolano las líneas de impresoras 3D,  Cube3  y CubePro  de 3D Systems Corporation, a través de las cuales se podrán imprimir modelos, diseños o escaneos en 3D. De igual manera, también está disponible el servicio de selfie3D y el servicio de modelado 3D. La impresora Cube3 tiene dos cabezales de impresión y es única en su clase, posee una amplia combinación de materiales ABS, PLA y una variedad de 18 colores. Es el equipo más fácil de utilizar en el mercado y tiene un software de construcción apto para Windows y Mac; además cuenta con conexión wifi. La nueva CubePro, impresora 3D de calidad profesional ofrece el mayor volumen de impresión entre las impresoras de su clase, sus versiones cuentan con uno, dos o tres cabezales de impresión. Además, posee una amplia combinación de materiales ABS, PLA y Nylon con una variedad de 25 colores, cuenta con una cámara calefaccionada y cerrada para optimizar los trabajos de impresión 3D. P...

Cómo utilizar Google Cloud Print para usar una impresora desde cualquier ordenador, móvil o tablet

Google Cloud Print  es de los productos menos populares de Google, pero es de los mejores. Básicamente  conecta tu impresora a la Web para que puedas imprimir en ella desde cualquiera de tus ordenadores o dispositivos móviles  (a través del ordenador si es una impresora convencional), aunque estés  en el otro extremo del mundo . Y  también permite compartir la impresora con otros usuarios , para que puedan imprimir en ella aunque también estén  en el otro extremo del mundo . En ambos casos será posible imprimir a través de Google Cloud Print desde el navegador Chrome y desde aplicaciones de Google que tengan la opción de imprimir, caso de las aplicaciones de Gmail (nativa o web) y Google Docs / Google Drive 1 . Google Cloud Print también está disponible desde  aplicaciones compatibles . Para activar Google Cloud Print, Inicia (instala primero si es necesario) el  navegador web Chrome Abre las preferencias. Al final de la pá...