Sistema de Control de Versiones
Sistema de Control de Versiones
Sistema de Control de Versiones
Git, es un software de control de versiones diseñado por Linus Torvalds. La pregunta es ¿qué
es control de versiones? Pues bien, se define como control de versiones a la gestión de los
diversos cambios que se realizan sobre los elementos de algún producto o una
configuración del mismo es decir a la gestión de los diversos cambios que se realizan sobre
los elementos de algún producto o una configuración, y para los que aún no les queda
claro del todo, control de versiones es lo que se hace al momento de estar desarrollando
un software o una página web. Exactamente es eso que haces cuando subes y actualizas
tu código en la nube, o le añades alguna parte o simplemente le editas cosas que no
funcionan como deberían o al menos no como tú esperarías.
Y, entonces ¿a que le llamamos sistema de control de versiones? Muy sencillo, son todas las
herramientas que nos permiten hacer todas esas modificaciones antes mencionadas en
nuestro código y hacen que sea más fácil la administración de las distintas versiones de
cada producto desarrollado; es decir Git.
GIT
Rapidez en la gestión de ramas, debido a que Git nos dice que un cambio será
fusionado mucho más frecuentemente de lo que se escribe originalmente.
Gestión distribuida; Los cambios se importan como ramas adicionales y pueden ser
fusionados de la misma manera como se hace en la rama local.
Gestión eficiente de proyectos grandes.
Realmacenamiento periódico en paquetes.
Instantáneas, no diferencias
La principal diferencia entre Git y cualquier otro VCS es cómo Git modela sus datos.
Conceptualmente, la mayoría de los demás sistemas almacenan la información como una
lista de cambios en los archivos. Estos sistemas modelan la información que almacenan
como un conjunto de archivos y las modificaciones hechas sobre cada uno de ellos a lo
largo del tiempo, como ilustra la Figura 1.
Figura 1. Otros sistemas tienden a almacenar los datos como cambios de cada archivo
respecto a una versión base.
Git no modela ni almacena sus datos de este modo. En cambio, Git modela sus datos más
como un conjunto de instantáneas de un mini sistema de archivos. Cada vez que confirmas
un cambio, o guardas el estado de tu proyecto en Git, él básicamente hace una foto del
aspecto de todos tus archivos en ese momento, y guarda una referencia a esa instantánea..
Para ser eficiente, si los archivos no se han modificado, Git no almacena el archivo de
nuevo, sólo un enlace al archivo anterior idéntico que ya tiene almacenado. Git modela
sus datos más como en la Figura 2.
Figura 2. Git almacena la información como instantáneas del proyecto a lo largo del tiempo.
Esta es una distinción importante entre Git y prácticamente todos los demás VCSs. Hace
que Git reconsidere casi todos los aspectos del control de versiones que muchos de los
demás sistemas copiaron de la generación anterior. Esto hace que Git se parezca más a un
mini sistema de archivos con algunas herramientas tremendamente potentes construidas
sobre él, que a un VCS. Exploraremos algunos de los beneficios que obtienes al modelar tus
datos de esta manera cuando veamos ramificaciones (branching) en Git en el Capítulo 3.
Ahora presta atención. Esto es lo más importante a recordar acerca de Git si quieres que el
resto de tu proceso de aprendizaje prosiga sin problemas. Git tiene tres estados principales
en los que se pueden encontrar tus archivos: confirmado (committed), modificado
(modified), y preparado (staged). Confirmado significa que los datos están almacenados
de manera segura en tu base de datos local. Modificado significa que has modificado el
archivo pero todavía no lo has confirmado a tu base de datos. Preparado significa que has
marcado un archivo modificado en su versión actual para que vaya en tu próxima
confirmación.
Esto nos lleva a las tres secciones principales de un proyecto de Git: el directorio de Git (Git
directory), el directorio de trabajo (working directory), y el área de preparación (staging
area).
El directorio de Git es donde Git almacena los metadatos y la base de datos de objetos
para tu proyecto. Es la parte más importante de Git, y es lo que se copia cuando clonas un
repositorio desde otro ordenador.
El directorio de trabajo es una copia de una versión del proyecto. Estos archivos se sacan
de la base de datos comprimida en el directorio de Git, y se colocan en disco para que los
puedas usar o modificar.
Sobre Github
Pero ojo, para no llevarnos a engaño, al ser Git un sistema de control de versiones distribuido,
no necesito Github u otro sitio de alojamiento del código para usar Git. Simplemente con
tener Git instalado en mi ordenador, tengo un sistema de control de versiones completo,
perfectamente funcional, para hacer todas las operaciones que necesito para el control
de versiones. Claro que usar Github nos permite muchas facilidades, sobre todo a la hora
de compartir código fuente, incluso con personas de cualquier parte del mundo a las que
ni conoces.
Esa facilidad para compartir código del repositorio alojado en la nube con Github y la
misma sencillez que nos ofrece el sistema de control de versiones Git para trabajar, ha
permitido que muchos proyectos Open Source se hayan pasado a Github como repositorio
y a partir de ahí hayan comenzado a recibir muchas más contribuciones en su código.
Quizás te estés preguntando ¿cómo obtienen dinero en Github si alojar proyectos en sus
repositorios es gratis? Realmente solo es gratuito alojar proyectos públicos, de código
abierto. El servicio también permite alojar proyectos privados y para ello hay que pagar por
una cuenta comercial o un plan de hosting que no es gratuito. Existen planes iniciales, para
alojar hasta cinco proyectos privados a partir de 7 dólares por mes, lo que resulta bastante
barato. Ese mismo plan es gratuito para los estudiantes universitarios.
Referencias
[2] DesarrolloWeb, «Introducción a Git y Github,» 03 Junio 2014. [En línea]. Available:
https://desarrolloweb.com/articulos/introduccion-git-github.html. [Último acceso: 26
Marzo 2019].