¿En qué consisten las aplicaciones de control de versiones?

4min

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, al crear una web, comienzan sin usar un sistema 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 los diferentes tipos de software de control de versiones y prestamos especial atención a Git, la actual referencia en desarrollo web, y su plataforma  de desarrollo colaborativo GitHub, responsable de su popularización.

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.

Índice

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.

Y si no queremos ceder el control de nuestro software a terceros, siempre podemos alojar esta aplicación en nuestros propios servidores con GitLab, como vimos en nuestro artículo ¿Por qué debemos llevar GitLab a Cloud? De este modo, gestionaremos nosotros mismos la plataforma donde se alojan los repositorios Git.

Fernán García de Zúñiga

Productos relacionados: