Git y las ventajas del control de versiones

Uno de los regalos menos conocidos por el público que nos hizo Linus Torvalds es su sistema de control de versiones “Git”, pues hacer código en equipo no es tan fácil como puede parecer. Cuando este señor abrió su proyecto de un núcleo de sistema operativo al mundo, de forma que cualquiera pudiese colaborar, se encontró con un problema: a la hora de juntar fragmentos de código que le enviaban, tenía que revisar a mano cada uno de los ficheros, para buscar las versiones (fetch) para añadir el nuevo código intentando evitar conflictos (por ejemplo que un programador llamó a una variable de una manera y otro de otra, y llegado un punto nos hacemos un lío entre los dos nombres) y guardar la nueva versión (commit), o volver atrás si la hemos liado (revert). Además y proyecto puede dar pie a distintas líneas de desarrollo, bifurcándose (fork) para poder llegar a unirse de nuevo en algún momento (merge). Y todo esto se hacía en los 90 a mano, pegando el código que se enviaba por email.

Git y las ventajas del control de versiones

El caso es que cuando se inventó este sistema, se automatizó la comparación de código, se indicaban los conflictos para resolverlos rápidamente de forma manual y se agilizó muchísimo el proceso, de forma que cuando se trabaja en equipo hoy en día, el control de versiones se ha convertido en una piedra angular. Claro que para que esto sea posible siempre hace falta un par de cosas: lugar en Internet para dejar el código y que todos los participantes en el proyecto puedan sincronizarlo, y un programa amigable de fachada de Git, porque seamos sinceros: el señor Torvalds hace un código de back-end maravilloso que se maneja de lujo desde la consola, pero eso no es precisamente muy amigable para todos (personalmente siempre me gustó usar como cubierta SmarGit, gratuito para uso personal y disponible para Windows, Mac y Linux, pero para gustos hay colores).

De ahí que desde hace años hayan proliferados los repositorios digitales donde almacenar los contenidos y su documentación en forma de wiki, tales como Github (el lugar de referencia para el software libre, donde ha migrado la mayoría del código del difunto Google Code), Bitbucket (de Atlassian, creadores de Jira, muy bueno para proyectos privados de equipos pequeños), Codeplex (de Microsoft, casi todo lo que hay allí es del ecosistema de Windows), Launchpad (de Canonical, casi todo lo que hay allí es de ecosistema de Ubuntu-Unity) o SourceForge (nada recomendable hoy en día).

En mi caso, como prefiero desarrollar sin estar ligada a ninguna plataforma concreta y con plena libertad a la hora de elegir el lenguaje de programación, utilizo Bitbucket y Github según me convengan mas: si mi pequeño proyecto debe ser privado, Bitbucket es el lugar apropiado, pues admite repositorios privados para equipos de hasta 5 personas de forma gratuita. En cambio, si prefiero crear algo que compartir con el mundo, Github es mucho mejor, pues además de la wiki da la posibilidad de crear una web de tu proyecto mucho mas atractiva, y hoy en día, nos guste o no, el diseño importa.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s