Git es un sistema de versionado: una herramienta que guarda el estado de tu proyecto en diferentes momentos, te permite volver atrás, y deja que varias personas trabajen sobre la misma base de código sin pisarse. Comparado con Google Docs o Dropbox, Git hace dos cosas radicalmente distintas: tú decides cuándo guardar (y le pones nombre a cada guardado), y cada guardado es un estado completo del proyecto, no un diff incremental.
El modelo mental: snapshots, no diffs
Mucha gente imagina Git como una serie de parches sucesivos. No es así. Git almacena snapshots: en cada commit guarda una foto completa del árbol de archivos en ese instante. Los archivos que no han cambiado son solo referencias a la versión anterior (ahorro en disco), pero conceptualmente cada commit es un estado completo y autónomo.
Consecuencia práctica: puedes moverte por el historial como en una biblioteca de fotos. Cada commit tiene un identificador único (un hash SHA, tipo a3f5b6c), una fecha, un autor, un mensaje, y un padre (salvo el primer commit). El conjunto forma un grafo.
Tres zonas, tres roles
Cuando trabajas, tu proyecto vive en tres zonas distintas:
- Working directory: los archivos que ves y editas en tu editor.
- Staging area (o "índice"): un área intermedia donde preparas tu próximo commit. Puedes poner ahí solo algunos cambios y dejar otros para después.
- Repository: el historial de commits, inmutable una vez registrado.
El flujo normal: editas un archivo (working), haces git add archivo.txt (staging), haces git commit -m "..." (repository). Esta separación te permite hacer commit de un tema a la vez, aunque hayas tocado diez archivos.
Local primero, remoto después
Git es distribuido: todo el historial de tu proyecto está almacenado en tu máquina, en la carpeta oculta .git/ en la raíz del proyecto. Puedes hacer commits, crear ramas, ver el historial, todo sin conexión a internet.
La sincronización con un servidor remoto (GitHub, GitLab, etc.) se hace explícitamente con git push y git pull. Tú decides cuándo publicar tu trabajo, y solo en ese momento los demás pueden verlo.
Verificar tu instalación
Deberías ver una versión (por ejemplo git version 2.43.0). Si el comando no existe, instala Git desde git-scm.com.
Presentarte a Git
Antes de tu primer commit, Git quiere saber quién eres. Esta configuración se hace una vez, de forma global.
Este email aparecerá en tus commits. Si publicas en GitHub, usa el email asociado a tu cuenta GitHub para que tus commits queden atribuidos correctamente.
Para continuar
La lección siguiente te hace crear tu primer repo, tu primer commit, y te da los comandos que usarás cada día.
