Git & GitHub – DÍA 2
Control de cambios: git diff, staging, log, deshacer cambios, restaurar archivos
1. Objetivo del día
Hoy aprenderás a:
- ver qué ha cambiado en tus archivos
- entender el área de staging
- deshacer cambios antes del commit
- restaurar archivos borrados o modificados
- revisar el historial
- hacer commits limpios y profesionales
Este día evita errores comunes que comete el 90% de principiantes.
2. Flujo de trabajo de Git (ultra esencial)
Cada cambio pasa por 3 estados:
- Working directory (tu carpeta real con tus archivos)
- Staging (área intermedia donde eliges qué quieres guardar)
- Repository / commits (historial permanente)
Git solo guarda en la historia lo que está en staging, NO todo el directorio.
Gráficamente:
[ Working Directory ] → git add → [ Staging Area ] → git commit → [ Repository ]
3. Ver el estado del repositorio
Tu mejor amigo:
git status
4. Ver diferencias: git diff
Modificar un archivo:
echo "nueva linea" >> archivo.txt
Ver qué ha cambiado antes de añadir al staging:
git diff
Esto muestra:
- líneas añadidas → verde
- líneas borradas → rojo
5. Añadir un archivo al staging
git add archivo.txt
Ahora git diff ya no muestra el cambio (porque está en staging).
Para ver lo que hay en staging:
git diff --staged
6. Commitear (guardar versión)
git commit -m "Añado nueva línea al archivo"
7. Ver historial de cambios
Historial completo:
git log
Versión simple:
git log --oneline
Ver cambios de un commit:
git show <ID_COMMIT>
Ejemplo:
git show a3f9c2b
8. Deshacer cosas (muy importante)
8.1. Deshacer cambios sin haber hecho git add
Si modificaste el archivo y luego te arrepientes:
git restore archivo.txt
Esto lo devuelve a como estaba en tu último commit.
8.2. Deshacer cambios que ya están en el staging
Si hiciste:
git add archivo.txt
y quieres quitarlo:
git restore --staged archivo.txt
8.3. Deshacer todo lo no guardado en el repo
⚠ Atención, esto borra cambios sin guardar:
git restore .
9. Recuperar archivos borrados (¡Git es mágico!)
Si borraste un archivo accidentalmente:
rm archivo.txt
git restore archivo.txt
¡Git lo revive si estaba en un commit anterior!
10. Deshacer el último commit (sin perder el trabajo)
Si hiciste un commit pero quieres rehacerlo:
git reset --soft HEAD~1
Esto devuelve los cambios al staging, no los borra.
11. Deshacer commit y staging, pero conservar archivos:
git reset --mixed HEAD~1
12. Deshacer commit Y los cambios (volver atrás)
⚠ Usa esto solo si sabes lo que haces:
git reset --hard HEAD~1
Esto elimina cambios.
13. Práctica guiada (20–30 minutos)
1️⃣ Crear archivo:
echo "Hola" > test.txt
git add test.txt
git commit -m "Creo test.txt"
2️⃣ Añadir nueva línea:
echo "Linea nueva" >> test.txt
git diff
3️⃣ Añadir al staging:
git add test.txt
git diff --staged
4️⃣ Quitar del staging:
git restore --staged test.txt
5️⃣ Deshacer cambios:
git restore test.txt
6️⃣ Borrar archivo:
rm test.txt
git restore test.txt
14. Checklist del Día 2
- Sabes usar
git diffygit diff --staged - Usas staging de forma correcta
- Commites solo lo que quieres
- Restauras archivos modificados
- Puedes recuperar archivos borrados
- Sabes ver el historial
- Puedes deshacer el último commit con seguridad
- Entiendes los 3 estados de Git
Si está todo marcado → Día 2 completado.
15. Ejercicio sugerido
Crea un repositorio y práctica:
- crear archivo A y B
- modificar varios
- añadir solo uno a staging
- hacer commit
- recuperar archivos borrados
- usar
git diff,git restore,git log,git show
Al terminar este ejercicio, sabrás deshacer casi cualquier error típico.
16. Día 2 completado
Ya dominas lo más importante de Git en local.
Mañana llega el día donde tu trabajo empieza a viajar a la nube:
👉 Día 3 – GitHub: crear repos remotos, enlazar local → remoto, push, pull, claves SSH o token.
Este día es FIESTA porque ya podrás subir tus scripts de verdad.
