Introducción
Git es un sistema de control de versiones distribuido creado originalmente por Linus Torvalds en 2005 para el desarrollo del kernel de Linux. Registra cambios en archivos a lo largo del tiempo, permite que varias personas colaboren y le da a cada desarrollador una copia completa del historial del proyecto. Hoy Git impulsa la mayor parte del desarrollo de software libre y empresarial del mundo.
Qué es Git
Git es un sistema de instantáneas direccionado por contenido. Cada commit guarda una imagen completa de los archivos rastreados de tu proyecto, identificado por un hash criptográfico. Git es rápido porque la mayoría de las operaciones son locales, y resiliente porque cada clon es una copia de seguridad completa.
- Distribuido: cada clon es un repositorio completo.
- Basado en instantáneas: los commits guardan árboles, no diffs.
- Amigable con branches: los branches son punteros baratos, no copias completas.
Qué no es Git
Git no es una herramienta de respaldo, ni un sistema de revisión de código, ni una plataforma de despliegue. No bloquea archivos como los sistemas centralizados (CVS, SVN, Perforce en su modo predeterminado). No almacena diffs binarios eficientemente para archivos multimedia grandes sin extensiones como Git LFS. Y Git no es GitHub: GitHub, GitLab y Bitbucket son servicios de hosting construidos sobre Git.
Probándolo
Verifica que Git esté instalado e inspecciona su versión:
git --version
Inicializa un repositorio diminuto para ver Git en acción:
mkdir hello-git
cd hello-git
git init
echo "hello" > readme.txt
git add readme.txt
git commit -m "first commit"
git log --oneline
Por qué triunfó Git
Antes de Git, la mayoría de los equipos usaban herramientas centralizadas que requerían acceso de red para casi cualquier acción. El modelo distribuido de Git permitió a los desarrolladores hacer commits, branches y revisar el historial sin conexión. Combinado con branches baratos y la adopción del kernel de Linux, Git se convirtió en el estándar de facto en una década. La amplia disponibilidad de hosting gratuito en plataformas como GitHub, GitLab y Bitbucket consolidó el lugar de Git: una generación de desarrolladores aprendió Git como su primer sistema de control de versiones.
Cómo almacena datos Git
El modelo de almacenamiento de Git es inusual. En lugar de registrar diffs entre versiones, Git guarda instantáneas completas de cada archivo en cada commit, deduplicadas por hash de contenido. Esto hace que operaciones como checkout y cambio de branch sean esencialmente de tiempo constante, y operaciones de historial como log y blame sorprendentemente rápidas. La contrapartida es que cambios binarios aleatorios pueden inflar el almacenamiento, por lo que existe Git LFS para activos grandes.
Errores comunes
Los principiantes a menudo confunden Git con GitHub, o asumen que Git rastrea automáticamente cada archivo en una carpeta. Git solo rastrea archivos que añades explícitamente con git add, y solo versiona contenido bajo el directorio de trabajo de un repositorio inicializado. Otro mito: Git "guarda" continuamente. No lo hace. Nada se registra hasta que ejecutas git commit. Finalmente, Git no está diseñado para activos binarios grandes; usa Git LFS o un sistema diferente para video, conjuntos de datos grandes o artefactos de build.