Control de versiones: Git y GitHub

El control de versiones es un sistema que nos permite llevar un seguimiento sobre cada uno de los estados de un software a lo largo del tiempo. Muchos desarrolladores que comienzan no usan sistemas de control de versiones, pero todos han realizado alguna vez la tarea para controlar el estado de un código, aunque sea de una manera tan simple como copiar un archivo de código o una carpeta con una aplicación entera.

En este artículo, profundizamos en las diferentes tipologías de control de versiones y prestamos especial atención a Git, la actual referencia en desarrollo web, y la plataforma  de desarrollo colaborativo GitHub, responsable de su popularización.

github

Los sistemas de control de versiones son esenciales para un flujo de trabajo seguro, optimizado y donde pueden participar de una manera cómoda varios integrantes de un equipo, sin machacarse el trabajo los unos a los otros.

El desarrollo de software es una disciplina relativamente nueva y a lo largo de la historia han existido diversos sistemas de control de versiones, desde las más rudimentarias a las más sofisticadas o sencillamente potentes. Actualmente nos sonarán nombres como Subversion, CVS o Git, que son los más usados.

Tipos de control de versiones

Tenemos diversos tipos de sistemas donde cabe mencionar la clasificación principal.

  • Centralizados: Existe un servidor central que es el que realiza el control y cada desarrollador tiene en local solo aquellos códigos con los que está trabajando. Subversion o CVS están en esta clasificación.
  • Distribuidos: donde no existe un ordenador central que mantenga el sistema, sino que cada uno de los desarrolladores mantienen una misma copia del código. Es el caso de Git.

Los sistemas distribuidos tienen como ventaja que permiten trabajar de manera más autónoma a los desarrolladores. Al tener una copia completa del proyecto, se puede editar cualquier código sin tener que estar conectado a Internet en ese momento.

Git como la referencia actual en el sistema de control de versiones

Git es un sistema de control de versiones distribuido, lo que permite mayor autonomía entre los programadores. Este sistema de control de versiones fue creado por el equipo de desarrollo del Kernel de Linux, como respuesta a sus necesidades concretas. Ellos necesitaban que todos los desarrolladores pudieran trabajar con el proyecto entero desde cualquier localización y en cualquier circunstancia, por lo que los controles de versiones centralizados no eran adecuados. Existían ya sistemas distribuidos para el control de versiones, pero no eran de código libre, así que crearon Git.

¿Qué es GitHub?

Uno de los motivos de la popularización de servicios basados en Git ha sido GitHub, que no es más que un servicio de hosting para repositorios Git. GitHub lo que permite es que cualquier persona use su servidor para albergar su código fuente. En GitHub el código se controla y se organiza usando Git.

La popularización del software libre y la necesidad que una amplia comunidad de personas trabaje y colabore en un mismo proyecto hace que los sistemas de control de versiones sean absolutamente necesarios y hoy GitHub se ha convertido en el gran canalizador de los proyectos de código abierto. Pero no solo eso, hoy una persona que quiera contratar a un profesional es muy común que se fije en su usuario de Github y compruebe en qué proyectos colabora y qué tipo de aportaciones viene realizando.

Sin embargo, no queremos llevar a engaño. Para usar Git no necesitas usar GitHub, puesto que cada uno en Git tiene un control de versiones autónomo. GitHub se usa más bien para mantener una copia del software en remoto, accesible para cualquier persona interesada en un software. GitHub tampoco es el único servicio de hosting de software basado en Git.

Compartir

Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+