Sunteți pe pagina 1din 5

DISEÑO WEB Sistema de Control de versiones - Git

Sistema de Control de versiones


¿Qué es 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

Git fue creado pensando en la eficiencia y la confiabilidad del mantenimiento de versiones


de aplicaciones cuando éstas tienen un gran número de archivos de código fuente, es
decir Git nos proporciona las herramientas para desarrollar un trabajo en equipo de manera
inteligente y rápida y por trabajo nos referimos a algún software o página que implique
código el cual necesitemos hacerlo con un grupo de personas.

Algunas de las características más importantes de Git son:

 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.

Ing. Ernesto Nicho Córdova USAT|1


DISEÑO WEB Sistema de Control de versiones - Git

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.

Ing. Ernesto Nicho Córdova USAT|2


DISEÑO WEB Sistema de Control de versiones - Git

Los tres estados

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).

Figura 3. Directorio de trabajo, área de preparación y directorio de Git.

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.

Ing. Ernesto Nicho Córdova USAT|3


DISEÑO WEB Sistema de Control de versiones - Git

El área de preparación es un sencillo archivo, generalmente contenido en tu directorio de


Git, que almacena información acerca de lo que va a ir en tu próxima confirmación. A
veces se le denomina índice, pero se está convirtiendo en estándar el referirse a ella como
el área de preparación.

El flujo de trabajo básico en Git es algo así:

1. Modificas una serie de archivos en tu directorio de trabajo.


2. Preparas los archivos, añadiéndolos a tu área de preparación.
3. Confirmas los cambios, lo que toma los archivos tal y como están en el área de
preparación, y almacena esas instantáneas de manera permanente en tu directorio
de Git.

Si una versión concreta de un archivo está en el directorio de Git, se considera confirmada


(committed). Si ha sufrido cambios desde que se obtuvo del repositorio, pero ha sido
añadida al área de preparación, está preparada (staged). Y si ha sufrido cambios desde
que se obtuvo del repositorio, pero no se ha preparado, está modificada (modified). En el
Capítulo 2 aprenderás más acerca de estos estados, y de cómo puedes aprovecharte de
ellos o saltarte toda la parte de preparación.

Sobre Github

Como se ha dicho, Github (github.com) es un servicio para alojamiento de repositorios de


software gestionados por el sistema de control de versiones Git. Por tanto, Git es algo más
general que nos sirve para controlar el estado de un desarrollo a lo largo del tiempo,
mientras que Github es algo más particular: un sitio web que usa Git para ofrecer a la
comunidad de desarrolladores repositorios de software. En definitiva, Github es un sitio web
pensado para hacer posible el compartir el código de una manera más fácil y al mismo
tiempo darle popularidad a la herramienta de control de versiones en sí, que es Git.

Cabe destacar que Github es un proyecto comercial, a diferencia de la herramienta Git


que es un proyecto de código abierto. No es el único sitio en Internet que mantiene ese
modelo de negocio, pues existen otros sitios populares como Bitbucket que tienen la misma
fórmula. No obstante, aunque Github tenga inversores que inyectan capital y esté movido
por la rentabilidad económica, en el fondo es una iniciativa que siempre ha perseguido (y
conseguido) el objetivo de hacer más popular el software libre. En ese sentido, en Github es
gratuito alojar proyectos Open Source, lo que ha posibilitado que el número de proyectos
no pare de crecer, y en estos momentos haya varios millones de repositorios y usuarios
trabajando con la herramienta.

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.

Ing. Ernesto Nicho Córdova USAT|4


DISEÑO WEB Sistema de Control de versiones - Git

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.

Github además se ha convertido en una herramienta para los reclutadores de empleados,


que revisan nuestros repositorios de Github para saber en qué proyectos contribuimos y qué
aportaciones hemos realizado. Por ello, hoy resulta importante para los programadores no
solo estar en Github sino además mantener un perfil activo.

Referencias

[1] Git, «Empezando - Fundamentos de Git,» [En línea]. Available: https://git-


scm.com/book/es/v1/Empezando-Fundamentos-de-Git. [Último acceso: 25 Marzo
2019].

[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].

Ing. Ernesto Nicho Córdova USAT|5

S-ar putea să vă placă și