Como organizar tus repositorios con GitHub

Como organizar tus repositorios con GitHub

Si tienes un código excelente, en donde lo piensas guardar y administrar?

Introducción

Voy a hacer una breve introducción a GIT para que entendamos el concepto. GIT es un software de control de versiones “DISTRIBUIDO” diseñado por Linus Torvalds.

Fue pensado para desarrollar un trabajo en equipo de manera inteligente y rápida. Es importante comprender la diferencia conceptual con otros sistemas de versiones.

Git Trabaja con instantáneas no con diferencias

GIT tiene 3 estados
• Confirmado (Committed)
• Modificado (Modified)
• Preparado (Staged)

• GIT funciona localmente – Puedes ver la historia de tu proyecto, trabajar sobre él y cuando estés listo puedes subir tus cambios al repositorio central para que los demás lo vean

No me voy a centrar en como instalar git ya que esto lo puedes realizar fácilmente a través de un administrador de paquetes o yendo directamente a la documentación de GIT.

Lo siguiente que voy a hablar es como organizar tus proyectos en Git. Para enfocarnos en este tema hay algo muy importante que hablar y es el tema de Gobierno.

Como tal GIT solo nos sirve como Sistema de Control de Versiones que nos sirve para realizar el rastreo de los cambios hechos al código fuente, archivos de configuración y documentación. Git almacena los cambios en una base de datos llamada “repositorio”.

Piensa en un repositorio como si fuera un folder que contiene tus archivos. Pero qué pasa si yo por ejemplo quiero darle capacidades adicionales a mi repositorio como son compartir el código, colaborar
con otros, autorización, realizar pull requests y otras capacidades que me simplifican la vida. Pues bien para eso voy a nombrar algunas de las herramientas que nos sirven para tal fin:

• GitLab
• GitHub
• BitBucket

Flujo de trabajo

Gitflow es uno de los muchos workflows que existen para trabajar con GIT. Si no tienes establecido tu propio flujo de trabajo, te recomendamos utilizar Gitflow el cual ya tiene una base sólida para empezar a trabajar.
Si deseas puedes crear tu propio flujo, pero este te va a servir como punto de partida.

Cómo funciona

Gitflow utiliza un repositorio central como centro de comunicación para los diferentes desarrolladores. Su punto fuerte es la estructura de ramas (branches) que posee para controlar la evolución del proyecto. Gitflow se caracteriza por el uso de cuatro tipos de ramas diferentes:

Historical Branches

Se utilizan dos ramas para registrar el historial de proyecto: Master y Develop. En la rama master no se desarrolla, solamente se registran los diferentes lanzamientos. Todas las integraciones se realizan desde la rama de Develop . El resto de ramas trabajan alrededor de estas dos.

Feature Branches

Cada nueva funcionalidad debe residir en su propia rama, de esta forma en caso de existir problemas es muy rápido volver a versiones anteriores. Cuando se finaliza el desarrollo sobre la feature, se fusiona con la rama de develop , nunca con la rama master.

Release Branches

Una vez el evolutivo se ha finalizado y se acerca la fecha de lanzamiento se crea una rama para éste, release. Las ramas releases son utilizadas para marcar o etiquetar lanzamientos de producto, (evolutivos) y poder tener identificados de forma rápida los cambios de las diferentes releases. A la rama release no se le pueden añadir nuevos evolutivos de ningún tipo, solamente la documentación asociada al lanzamiento de la release o errores puntuales.

Una vez se finalizan la rama release se tiene que fusionar tanto la rama master como la rama develop. Estas dos, siempre que realicemos una publicación, tienen que estar sincronizadas con el mismo contenido.

Maintenance Branches

La rama maintenance se utiliza cuando se detectan errores críticos de la aplicación. La forma de trabajar sería crear una rama proveniente de la master, solventar el correctivo y fusionar con la rama master.

Maintenance es la única rama que interactúa directamente con la rama master, todas las demás siempre se trabaja desde la rama de desarrollo.

correctivo se mantenga en los diferentes evolutivos.

Conclusiones

Como se pueden dar cuenta Git es una herramienta muy útil para administrar nuestro código fuente. Pero no basta con tener un repositorio, tenemos que pensar en el Gobierno y ahí es donde entra GitHub. GitHub es mucho mas que un servicio de alojamiento de código y sea cual sea e que te guste lo importante es que tengas claro como vas a gobernar tu código fuente. después de todo es un activo importante para tu empresa o negocio, no crees?

Andres Bedoya
Andres Bedoya

Deja un comentario


*