GIT

El control de versiones.

Desde el principio de los tiempos de la programación el gran enemigo siempre fue la perdida de nuestro código, encontrar la versión que funcionaba correctamente, la última modificación que le entregamos al cliente o evitar que Paco corrija sobre el código que nosotros acabamos de dejar listo para la entrega (perdón Paco, solo es un ejemplo).

Para evitar todo esto y tener realmente el control de los proyectos aparece en nuestras vidas GIT. Todo el tema de ¿Quién?, ¿Cómo? y ¿porque lo creo?, lo pueden encontrar en Wikipedia. Lo que nos importa hoy es lo que sigue.

¿Qué es GIT?

GIT en un SCM (Source Code Management, en español, Administración de Código Fuente),   a que te quedas igual que antes. Supongamos que tenemos un pequeño proyecto en una carpeta de nuestro sistema, dentro una serie de archivos que es el inicio de nuestro trabajo, como todo desarrollador realizaremos pruebas, ajustes y más pruebas hasta llegar al resultado que queremos. Al día siguiente continuamos con el trabajo y realizamos nuevas pruebas y modificaciones, durante las pruebas vemos que algo que ayer funcionaba hoy ya no lo hace, (¿les suena esto?)  Muy bien, si somos unos niños aplicados podemos recuperar el Zip que creamos ayer y tener todo tal cual estaba antes de iniciar nuestro trabajo de hoy de lo contrario a perder tiempo y comenzar nuevamente.

GIT, es un asistente perfecto para llevar un control de cada una de las modificaciones que realizamos en nuestros archivos para luego poder recuperarlo. Básicamente genera un histórico de toda nuestra actividad con el proyecto pudiendo marcar puntos que determinan el lugar al que podremos retrotraer nuestro proyecto, este retroceso tiene la cualidad de que no necesariamente tendremos que recuperar todo podemos hilar fino y solo recuperar un archivo en particular o una subcarpeta, etc.

Otra gran característica es la posibilidad de crear ramas ( Branch ) desde nuestro proyecto base donde podrá tomar un rumbo diferente al proyecto original. Un ejemplo de esto podría ser una aplicación que tiene como base todo el Back-End y al estar lista y probada esta etapa podríamos abrir ramas de desarrollo de Front-End para móviles, para Descktop o para dispositivos especiales.

¿GIT es el único SCM?

Pue no, existen otros con sus características propias y con sus ventajas y desventajas, “SUBVERSION” (SVC) es uno muy difundido y con mucha documentación disponible pero que actualmente está perdiendo territorio frente a GIT, Microsoft cuenta con  “Visual Source Safe” pero en los últimos años ha puesto sus ojos en GIT el cual ya integra en sus productos de desarrollo. Hay más pero lo que realmente nos interesa es que tiene de especial GIT que lo hace casi un estándar entre los desarrolladores. Es software libre, es gratuito, su almacenamiento es distribuido, es útil para un desarrollador independiente o para grupos de desarrollo, es multiplataforma y algunas cosas más que iremos descubriendo.

¿Es necesario GIT?

La respuesta es sin duda “SI”. Es habitual que su uso se asocie a grupos de trabajo en los cuales más de un desarrollador trabaja sobre el mismo proyecto y puede modificar o agregar archivos, código o documentación.

La gran ventaja de GIT es que cada uno de los integrantes de un proyecto tiene siempre el contenido de todo el proyecto en  local y lo sincronizan con el almacén central para mantenerlo actualizado.

En proyectos personales el desarrollador tiene la misma funcionalidad que en grupos con decenas de integrantes, teniendo el histórico en su equipo y pudiendo sincronizarlo con un almacén en la nube a voluntad y siempre que decida tenerlo.

IMPORTANTE:GIT no es un software de back-Up” es un software de control de versiones, de cambios en nuestros proyectos.

Puede que parezca engorroso pero lo explicare en detalle más adelante ya que es necesario tener claro algunos conceptos que nos ayudaran a entender el funcionamiento de GIT.

¿Porque crece su uso?

Aquí podríamos filosofar durante un rato y las conclusiones serian diversas, mi opinión personal y digo personal es que para empezar es una herramienta gratuita, bien documentada, probada en proyectos de gran envergadura como son “Gnome”,  “Kernel de Linux”,  “Debian”,  “Android”,  “Twitter”,  “Google” y podríamos seguir con proyectos de renombre.

Es muy rápido a la hora de trabajar y de aprender a usarlo, como ya dije cuenta con mucha documentación en su página oficial https://git-scm.com/doc, con un almacén muy optimizado, de reducido tamaño  y descentralizado que nos permite trabajar aunque estemos desconectados del almacén central si existiera o de internet.

Creo que hay más características que se van descubriendo con el uso y que hacen recomendable darle la oportunidad probándolo.

Para la próxima explicare como instalar y configurar GIT en nuestro equipo basado en Windows, hasta la próxima.

Deja tu comentario

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

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