mail

Introducción a GIT

images/portfolio-header.jpg
20 March 2017

Introducción

En este articulo haremos una introducción a GIT, su utilidad y ventjas, esto a modo de calentamiento antes de empezar con algunos ejemplos

En esta ocasión daremos el alcance de algunos terminos relacionados a GIT y la jerga relacionada a ella. Sin más preambulo comencemos...

¿Qué es un repositorio?

Si nos referimos a un repositorio de la forma literal entonces estamos hablando de un lugar u objeto donde se colocan o guardan cosas, una alacena o un estante por ejemplo. Sin embargo en nuestro contexto un repositorio de un lugar (servidor o carpeta) donde almacenamos información digital, por ejemplo la dirección http://biblioteca.pucp.edu.pe/recursos-electronicos/repositorios-pucp/ contiene un repositorio electrónico de tesis y revistas.

Generalmente los repositorios se utilizan para guardar codigo fuente y elementos similares, por ejemplo sitios web como github y bitbucket permiten almacenar repositorios de codigo de distintos proyectos.

Control de versiones y su relación con los repositorios

Por otro lado, el control de versiones tiene ver mucho con la gestión de cambios que se realizan sobre los distintos elementos (archivos) de un proyecto o trabajo. Por ejemplo, si realizamos un trabajo en grupo usando un procesador de textos con tus compañeros de colegio, instituto o universidad se puede gestionar los cambios usando la opción "Gestión de cambios" de LibreOffice o en Microsoft Office podemos visualizar los cambios que hicieron nuestros compañeros, tal como se puede ver en las siguientes figuras:

Control de cambios en LibreOffice

Trasladandonos al contexto informático, los sistemas de control de versiones o VCS (del inglés Version Control System) son sistemas que permiten manejar estos cambios de forma más facil, algunos de estos sistemas son:

La relación que existe entre la gestión de cambios y los repositorios radica en que ambas caracteristicas son utiles y a menudo se encuentran juntas en todos los Sistemas de Control de Versiones tanto de manera local como remota.

Caracteristicas

Un sistema de control de versiones debe proporcionar:

  • Mecanismo de almacenamiento de los elementos que deba gestionar (ej. archivos de texto, imágenes, documentación...).
  • Posibilidad de realizar cambios sobre los elementos almacenados (ej. modificaciones parciales, añadir, borrar, renombrar o mover elementos).
  • Registro histórico de las acciones realizadas con cada elemento o conjunto de elementos (normalmente pudiendo volver o extraer un estado anterior del producto).

Aunque no es estrictamente necesario, suele ser muy útil la generación de informes con los cambios introducidos entre dos versiones, informes de estado, marcado con nombre identificativo de la versión de un conjunto de ficheros, etc.

Ventajas

Para las personas que nunca han usado un sistema de control de versiones antes será dificil notar las ventajas de tener y usar un sistemas de estos de manera adecuada, por lo tanto explicaremos estas ventajas por medio de algunos ejemplos (problemas y soluciones) y estoy seguro que en algunos casos nos sentiremos identificados con ellos, pero eso sera para el proximo numero amigos :-).

Saludos y esten al pendiente