Introducción a GIT

Logo Git

Logo Git

El otro día me propusieron que diera a mis compañeros un seminario de GIT. GIT es un sistema de control de versiones (SCV) con muchas ventajas frente a otros sistemas como CVS y SVN, habituales entre los desarrolladores.

GIT fue creado en 2005 por Linus Torvalds, el creador de Linux, debido a que el control de versiones que estaban usando hasta ese momento, BitKeeper, pasó a ser de pago. En ese momento decidieron hacer su propio control de versiones, nació GIT. Sus principales características son rapidez, diseño sencillo, fuerte apoyo al desarrollo no lineal (es decir usando miles de ramas paralelas) y es capaz de manejar grandes proyectos, como el núcleo de Linux, de manera eficiente (velocidad y tamaño de los datos).

Una de sus principales novedades, es que es distribuido, es decir, todos los ordenadores tienen una copia del repositorio completo. Gracias a esta funcionalidad puedes estar trabajando en local sin conexión a internet, hacer commits, ramas y luego cuando vuelvas a estar conectado, subirlo al repositorio principal.

GIT además entiende cada uno de los commit, que recuerdo que son locales, como una instantánea del proyecto en ese momento, no como diferencias en archivos como otros SCV. De esta forma podemos volver a un estado anterior fácilmente si usamos mensajes descriptivos al hacer dichos commit.

El repositorio “origin” (así lo llama GIT, es el principal), se puede colocar en cualquier directorio de la red local, acceder por SSH, o incluso colgarlo de un acceso HTTP.

Para aprender los comandos básicos de GIT y empezar a usarlo, os dejo el enlace a este guía de referencia:

Además si queréis profundizar en las entrañas de este sistema de control de versiones, el enlace al libro gratuito de git en español:

Después de dar el seminario, me di cuenta de la reticencia que tienen “ingenieros” en usar la consola de comandos, nos hemos acostumbrado a un entorno visual, mucho más perezoso y poco potente, pero que muchos no saben trabajar sin él. Así que para los que seáis así, saber que tenéis muchas herramientas visuales para usar GIT, y que solo son un envoltorio de las operaciones reales en consola de comandos. De entre todos destacar uno multiplaforma y hecho por la gente de github.com:

http://windows.github.com/

http://mac.github.com/

Y un plugin para eclipse, para los que están acostumbrados a este IDE:

http://www.eclipse.org/egit/

Os animo a todos a que lo probéis, una vez que se pasa la barrera del cambio a algo nuevo, que siempre nos cuesta a todos, estaréis encantados de su eficiencia, rapidez y sencillez. Muy pocas veces he tenido que hacer un merge a mano.