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:

  1. Working directory (tu carpeta real con tus archivos)
  2. Staging (área intermedia donde eliges qué quieres guardar)
  3. 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 diff y git 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.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies