Del caos de carpetas "final_v2" a la inmutabilidad de Git
Guardar copias manuales con nombres arbitrarios causa pérdida de código, sobreescrituras accidentales y cero trazabilidad. Git modela el proyecto como una secuencia dirigida de snapshots completos identificados criptográficamente.
⚠️ Cero trazabilidad, sin autores, sin hashes, imposible comparar diferencias con precisión.
✓ Cada commit apunta a su padre, con autor, fecha, mensaje y snapshot completo inmutable.
El ciclo de tres estados: Working Tree, Staging e Historial
Un archivo no pasa directo de tu editor al historial. Primero reside modificado en tu disco (Working Tree), luego se prepara quirúrgicamente con git add (Staging Area), y finalmente se sella con git commit.
Sin cambios pendientes.
Listo para ser confirmado en el siguiente commit.
Historial actual sincronizado.
Anatomía de un commit: objeto criptográfico de 4 partes
Un commit no almacena simples "líneas agregadas o borradas". Es un objeto íntegro que contiene un puntero a un árbol de archivos (Tree), la referencia al commit padre, datos de autoría y el mensaje explicativo.
feat: add header navigation and semantic landmarks
HEAD: la brújula que indica dónde estás parado
En Git, las ramas no son carpetas pesadas: son punteros móviles de texto plano. HEAD es una referencia especial que apunta a la rama activa, garantizando que el próximo commit se enganche en el lugar exacto.
HEAD apunta a main en el commit C2. Cada nuevo commit hará avanzar el puntero main automáticamente.
Diagnóstico y lectura de estado con git status y git log
Interpretar correctamente la salida de git status previene desastres. Aprende a distinguir archivos sin seguimiento (Untracked), cambios preparados (Staged) y ramas adelantadas respecto al remoto.
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: src/components/Navbar.astro
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
modified: src/pages/index.astro
Untracked files:
(use "git add <file>..." to include in what will be committed)
temp-notes.txt Archivos añadidos con git add. Entrarán en el próximo snapshot.
Archivos modificados en disco pero aún no indexados en el Staging Area.
Archivos nuevos que Git nunca ha versionado en este proyecto.
Checklist de oro para no ensuciar tu repositorio
Dominar Git no es memorizar comandos, sino aplicar disciplina en cada paso. Revisa estas 4 directrices arquitectónicas indispensables antes de tu próximo commit.
Configura tu identidad antes del primer commit
Git estampa user.name y user.email de forma inmutable en cada hash SHA-1. Si cometeas con correos genéricos o incorrectos, corregirlo después requerirá reescribir la historia.
git config --global user.name "Tu Nombre"
git config --global user.email "tu@email.com" Staging quirúrgico: evita el "git add ."
Usa el Staging Area como un banco de carpintero: coloca solo los archivos que forman parte del mismo cambio lógico. Considera usar git add -p para revisar fragmentos individuales.
git add src/components/Header.astro
git status Commits atómicos y testeables
Cada commit debe compilar, pasar pruebas y resolver un único objetivo. Si necesitas usar la palabra "y" para describir el commit (ej. "agrego login y cambio estilos del footer"), divídelo en dos.
Crea ramas para todo cambio no trivial
Nunca programes directamente sobre main. Aislar tu trabajo en una rama feature te da total libertad para probar, descartar o pausar sin bloquear a otros desarrolladores.
git switch -c feature/auth-login