¿Qué es GIT?
Entre 1991 y 2002, el núcleo del Sistema Operativo Linux se mantenía con parches y archivos. En 2002, comenzó a usarse el SCVD propietario BitKeeper, pero en 2005 se rompió la relación con la empresa que lo desarrollaba. Ante esto, Linus Torvalds creó su propio sistema de control de versiones: Git.
Objetivos de Git:
Desde entonces, Git se volvió uno de los sistemas más usados por ser rápido, eficiente, fácil de aprender y manejar muy bien las ramas de desarrollo.
¿Cómo funciona Git internamente?
A diferencia de otros SCV que registran cambios en los archivos (como por ejemplo el SCV Subversion), Git guarda "instantáneas" del proyecto completo. Si un archivo no cambia, simplemente enlaza a la versión anterior.
Esto lo convierte en un mini sistema de archivos con herramientas muy potentes de control de versiones.
En esta imagen, puedes observar el modelo de funcionamiento de SCVD tradicionales:

🔍 Qué representa:
Cada archivo (A, B, C) se representa como una serie de diferencias (deltas) almacenadas en orden cronológico.
🧠 Cómo funciona:
-
El sistema guarda una versión base del archivo (versión 1).
-
Luego, en cada nueva versión, se guarda solo el cambio (delta) que se hizo respecto a la anterior.
-
Para reconstruir una versión específica, el sistema tiene que aplicar los deltas desde la versión base.
✅ Ventaja: Usa menos espacio, ya que solo guarda los cambios.
❌ Desventaja: Requiere más procesamiento para reconstruir estados anteriores, y muchas operaciones dependen del servidor (menos eficiente localmente)
En cambio, la siguiente imagen representa el modelo de GIT:

🔍 Qué representa:
Git no guarda deltas, sino instantáneas completas del estado del proyecto cada vez que se hace un commit.
🧠 Cómo funciona:
-
Cada versión (commit) es como una foto del proyecto en ese momento.
-
Si un archivo no cambió, Git no lo guarda de nuevo, sino que apunta al mismo archivo de la versión anterior.
-
Por ejemplo, el archivo B
no cambia en la versión 2, así que Git lo reutiliza sin volver a almacenarlo.
✅ Ventajas:
-
Es muy rápido para navegar entre versiones (todo está en local).
-
Ideal para ramas y desarrollo no lineal.
-
Alta integridad y seguridad (usa sumas de verificación).
❌ Desventaja: Puede parecer complejo al principio por su modelo distinto.
Consecuencias del modelo de Git
-
Casi todo es local:
El desarrollador puede trabajar sin conexión, revisar el historial, comparar versiones, etc., sin necesidad de conectarte al servidor.
-
Integridad garantizada:
Usa checksums (SHA-1) para detectar cualquier cambio, corrupción o pérdida de datos. Nada se guarda sin validación.
-
Siempre agrega información:
Casi todo lo que se realiza con Git agrega datos, por lo que es difícil perder algo importante, siempre y cuando el desarrollador confirme el cambio y realice un push regularmente.