Explicación Git & Git LFS

De Wiki
Saltar a: navegación, buscar

Este artículo tiene como objetivo explicar que es un repositorio Git, que en nuestro caso, es manejado mediante la aplicación Gitlab.

Introducción[editar | editar código]

Git es un programa que se utiliza para control de versiones, es decir, crea instantáneas por cada nueva versión que se haga del archivo. Con esto podemos obtener un control exhaustivo de nuestros proyectos y recuperar una versión en cualquier momento del mismo. Así mismo tiene muchas utilidades muy prácticas como ver las diferencias entre versiones y ver quien es el responsable de cada línea sumada/eliminada del proyecto.

Operaciones en local[editar | editar código]

Una de las ventajas que tiene git es que todas las operaciones, o casi su totalidad, son locales. Esto lo que facilita es la navegación por el proyecto

La mayoría de las operaciones en Git sólo necesitan archivos y recursos locales para operar. Por lo general no se necesita información de ningún otro ordenador de tu red. Como tienes toda la historia del proyecto ahí mismo, en tu disco local, la mayoría de las operaciones parecen prácticamente inmediatas.

Por ejemplo, para navegar por la historia del proyecto, Git no necesita salir al servidor para obtener la historia y mostrártela, simplemente la lee directamente de tu base de datos local. Esto significa que ves la historia del proyecto casi al instante. Si quieres ver los cambios introducidos en un archivo entre la versión actual y la de hace un mes, Git puede buscar el archivo hace un mes y hacer un cálculo de diferencias localmente, en lugar de tener que pedirle a un servidor remoto que lo haga, u obtener una versión antigua desde la red y hacerlo de manera local.

Esto también significa que hay muy poco que no puedas hacer si estás desconectado. Si te subes a un avión o a un tren y quieres trabajar un poco, puedes confirmar tus cambios sin problema hasta que consigas una conexión de red para subirlos. Luego una vez se tenga acceso a la red, solo es necesario subirlos con ayuda del comando "push".

Integridad[editar | editar código]

Todos los archivos que hay en Git son verificados, esta verificación se consigue con la ayuda del hash SHA-1. Esto significa que es imposible cambiar los contenidos de cualquier archivo o directorio sin que Git lo sepa, ya que esta supa es matemáticamente dependiente al contenido del archivo. Si variamos una letra o un espacio, por pequeño que sea el cambio.... el SHA-1 del archivo variará, de fora que Git lo registrará.

El SHA-1 trata de una cadena de 40 caracteres hexadecimanes (0-9 y a-f), y tienen este aspecto:

24b9da6552252987aa493b52f8696cd6d3b00373

Veremos estos hashes muy amenudo, ya que Git no reconoce los archivos por nombres sino por el SHA-1 de los mismos.

Los tres estados[editar | editar código]

La parte más importante de Git son los estados en los que se pueden encontrar los archivos de nuestro repositorio local.

Estado Descripción Lugar de almacenamiento
Committed Esto se consigue cuando añadimos un archivo modificado localmente al git local. De forma que tenemos guardado de forma segura los

cambios realizados.

Local, ordenador en uso
Modified Significa que hemos modificado el archivo, pero aún no lo hemos commiteado al git local, es decir, si llegamos a perder los archivos no

tendremos forma de recuperar los cambios efectuados.

Local, ordenador en uso
Staged Al tener el archivo en "Staged" la próxima vez que ejecutemos el comando que sube los archivos, subirá al repositorio todos los marcados. Local, ordenador en uso

Posteriormente para poder entender el flujo de trabajo debemos entender los distintos espacios de trabajo en git.

Espacio de trabajo Descripción
Directorio Git Es donde git almacena los datos y la base de datos del proyecto. Esto es lo que se clona cuando queremos trabajar con un repositorio localmente.
Directorio de trabajo Este contiene una copia del directorio Git, pero descomprimido. Se sacan de la base de datos comprimida del repositorio Git y se colocan en el disco para poder

trabajar con ellos localmente.

Area de preparación Es un archivo, generalmente contenido en el directorio Git local. Este almacena información acerca de lo que se va a subir en la próxima confirmación, es decir,

cuando hagamos nuestro "git push".

Flujo de trabajo básico en Git[editar | editar código]

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

  1. Modificas una serie de archivos en tu directorio de trabajo local.
  2. Preparas los archivos, añadiéndolos a tu área de preparación. Esto es hacer un "git add".
  3. Confirmamos los cambios, lo que toma los archivos tal y como están en el área de preparación, esto es hacer un "git commit"
  4. Por último almacenamos estas instantáneas, o cambios ya confirmados de manera permanente en el repositorio Git, esto es hacer un "git push".

Git extensión LFS[editar | editar código]

---- en construcción