You are on page 1of 2

GIT

GIT es un sistema de control de versiones, el cual es generalmente utilizado para


gestionar el cdigo de aplicaciones mediante una red per-to-per de servidores. GIT
se origin de la necesidades que presentaban los desarrolladores del kernel de
Linux, ya que no exista un VCS que reuniera todas las caractersticas que
necesitaban, debido a que el fabricante del VCS que se utilizaba en esa tiempo
decidi dar de baja la licencia a algunos de los desarrolladores, se empez a
escribir scripts que permitieran la gestin de paquetes por medio de correo
electrnico, y ms tarde se inici con el desarrollo de lo que actualmente es GIT,
se desarroll con los objetivos de:
Manejar los flujos de trabajos distribuidos
Ofrecer soporte contra la corrupcin de contenidos
Ofrecer alto rendimiento
Un VCS debe tener la capacidad de almacenar contenido, en el caso de GIT el
mtodo que utiliza cuando se debe almacenar algn archivo es, comparar el
archivo nuevo con el archivo base que se tiene en el repositorio, almacena la
diferencia entre los dos archivos para optimizar el espacio en el repositorio.
Otra de las caractersticas, que debe tener un VCS es la de subir y combinar
cdigo, la manera en que GIT hace este trabajo es mediante: historia linear y grafo
acclico dirigido por la historia; en el caso de historia lineal el cdigo va siguiendo
una lnea de tiempo donde en cada commit se va almacenando la diferencia entre
el cdigo base y el nuevo cdigo; en el caso de grafo acclico dirigido por la
historia, el cdigo se va ramificando, cada rama toma como base una determinada
parte del cdigo y a partir de esta se van guardando los cambios en el cdigo, esto
genera un historial no lineal del cdigo, lo que permite que el desarrollo sea ms
dinmico. Una de las caractersticas ms sobresalientes de GIT es que ofrece
tambin la posibilidad de combinar cdigo, es decir que se pueden unir varias
ramas a la rama principal, o se pueden combinar varias ramas entre s, lo que
ofrece mucha flexibilidad cuando se necesita desarrollar software por mdulos.
La otra caracterstica, que no necesariamente debe tener todos los VCSs, es la de
la distribucin, y existen 3 mtodos de distribucin: solo local, en donde se tiene el
cdigo en un solo repositorio; Servidor central, donde todos los cambios en el
cdigo se tienen que tramitar a travs de un repositorio especifico; y el mtodo
distribuido donde se tienen repositorios de acceso pblico donde se centraliza el
cdigo y servidores locales donde se puede subir cdigo, que luego se podr
publicar en los repositorios pblicos.
El paquete de herramientas de GIT se divide en dos partes plumbing y porcelain.
La primera incluye scripts de bajo nivel que permiten el seguimiento y control de
contenido en los grafos acclicos, mientras que porcelain contiene scripts
orientados al manejo y comunicacin de los servidores.
GIT cuenta con 4 objetos bsicos que son: tree se refiere a un directorio en el
repositorio, blob es un archivo, commit es una confirmacin de subida a un nivel
superior y tag es una etiqueta que apunta a un commit en el historial del
repositorio, cada uno de ellos tiene los atributos: tipo tamao y contenido; si dos
objetos son idnticos tendrn un mismo identificador, si no los no son se les
asignara un identificador diferente, en caso de que un archivo se haya copiado
parcialmente se le colocara un identificador que lo clasificara como un archivo
corrupto.
GIT empaqueta los objetos en un formato comprimido, en donde tiene un archivo
de ndice donde se tiene la referencia a los commits.
Como herramienta de trabajo GIT sigue innovando, su estructura modular de
scripts permite que la aplicacin sea escalable lo que deja ver un futuro brillante
para este VCS, existen muchas IDEs qque proporcionan soporte para GTI, y
gracias al apoyo de muchas personas de ha podido dar soporte a mas lenguajes
de programacin, actualmente se desarrollan nuevos proyectos basadados en GIT
que se mantiene independientes de este. Actualmente ha dejado de ser tan solo
un conjunto de scripts y se ha convertido en un formato de repositorios y un
protocolo para compartir informacin entre repositorios.

Nombre: Sergio Omar Ajanel Oroxom
Carnet: 1534310

You might also like