Introducción a git y los sistemas de control de versiones

¿Alguna vez te preguntaste qué es git y por qué lo utilizamos en nuestros proyectos?

En este articulo vamos a ver que es git, que son los sistemas de control de versiones y por qué son tan importantes a la hora de desarrollar software.

En primer lugar, git es un sistema de control de versiones distribuido.

Pero esta parece una definición un tanto complicada, así que vamos de a poco...

Un sistema de control de versiones es aquel que surge frente a la necesidad de registrar los cambios o versiones que existen en los archivos de un proyecto a lo largo del tiempo.

¿Pero, para qué queremos registrar todos los cambios en nuestro proyecto?

Bueno, esto nos permite obtener información valiosa, como saber quién hizo determinados cambios, cuando y con qué propósito, ver cómo ha ido cambiando el proyecto a lo largo del tiempo, y, en caso de que perdamos algún archivo, tener la posibilidad de recuperarlo.

 Una forma sencilla de controlar versiones podría ser, por ejemplo, hacer copias de nuestro proyecto en distintos directorios, dejando registrado fecha y hora, autor, o algún comentario que explique lo que se hizo. Pero esta forma es un tanto riesgosa, ya que tendríamos que navegar entre muchas carpetas, lo que podría resultar en que por error guardemos o eliminemos archivos donde no debíamos hacerlo, sobre todo si el proyecto es muy grande, por lo que este método es un tanto propenso a errores.

Como solución a esto se crearon sistemas de control de versiones locales, los cuales, mediante una base de datos, registraban los cambios realizados en los archivos. Pero ahora teníamos otro problema..

¿Qué pasaba si varios desarrolladores querían colaborar en un mismo proyecto?

Bueno, como estos métodos eran únicamente locales, se desarrollaron los conocidos VCS o sistemas de control de versiones centralizados, donde los archivos versionados son contenidos en un servidor central y los clientes pueden descargarlos.

Control de versiones centralizado

Pero esto tiene varias desventajas, por ejemplo, si se corrompiera el disco donde se encuentra la base de datos central y nadie hubiera realizado copias de seguridad, se perdería todo el proyecto o gran parte de él, o si por alguna razón el servidor estuviera caído durante un tiempo, entonces no se podría acceder a los archivos durante ese período.

Así es como nacen los Sistemas de control de versiones distribuidos, donde los clientes replican completamente el repositorio en el que está almacenado el proyecto. Ahora, cada cliente tiene una copia exacta del proyecto la cual funciona como copia de seguridad, protegiéndolo de la perdida de datos y evitando que una maquina física sea un único punto de falla.

Control de versiones distribuido

Ahora sí, volvamos a lo importante: ¿Qué es git?

Como se mencionó anteriormente, git es un sistema de control de versiones distribuido, de código abierto y desarrollado en el año 2005 por Linus Torvalds, quien también creó el kernel de linux.

Originalmente, el sistema de control de versiones estándar entre los desarrolladores de Linux era BitKeeper, pero luego de varios conflictos con la comunidad de Linux y una mala relación, BitKeeper dejo de ser gratuito. Es por eso que Linus Torvalds decido crear git, un sistema de control de versiones también distribuido y fuertemente inspirado por BitKeeper.

Git es una muy poderosa herramienta que nos permite de forma rápida y sencilla, mantener un historial completo de versiones sin depender de un repositorio central, además de contar con un sistema de ramas o branches que nos facilitan la creación de proyectos divergentes del principal para experimentar o probar nuevas funcionalidades sin tener mayor complicación.

Aunque actualmente existen muchos sistemas de control de versiones como lo son CVS, Subversion o Mercurial, hoy en día git es el más utilizado del mundo, además de estar detrás de sitios como GitHub, GitLab o BitBucket, que nos brindan una manera rápida, sencilla y amigable de mantener nuestros proyectos con git.

En el siguiente articulo estaremos viendo como crear un repositorio y utilizar los comandos básicos de git para aprovechar al máximo todos los beneficios que este sistema nos ofrece.


 

Mandanos tus sugerencias

Ayudanos con ideas para los artículos de este blog a contacto@somospnt.com

¡Seguínos en nuestras redes sociales para enterarte de los últimos posts!