12. Exposición sobre los comandos usados hasta el momento

 

 Tutorial: ¿Qué Hace Git por Nosotros? Tu Red de Seguridad Mágica

🐱 La Pesadilla del Desarrollador (¡Que NO Te Pase!)

Escenario Catastrófico:

Imagina esto: Dejas tu computadora abierta y ocurre UNO de estos desastres:

  • Tu gato camina sobre el teclado 🐈

  • Tu hijo pequeño "programa" por ti 👶

  • Derramas café sobre el teclado ☕

  • Simplemente haces cambios y los guardas por error 💥

Resultado: Tu hermoso sitio web ahora se ve así:

html
<!-- ¡DESASTRE TOTAL! -->
<!DOCTYPE html>
<html>
<head>
    <title>Mi Sitio</title>
</head>
<body>
    jkdsfhlkjsdhflkjsdhf  <!-- ¡Tu gato escribió esto! -->
    <div>asdfasdfasdf</div>
    <!-- ¡TODO SE ARRUINÓ! -->
</body>
</html>

💔 El Problema REAL:

  • Guardaste los cambios

  • Cerraste el editor

  • ¡Control+Z ya no funciona!

  • No tienes copia de seguridad reciente

https://via.placeholder.com/600x250/E74C3C/FFFFFF?text=Sin+Git:+Un+solo+error+arruina+tu+d%C3%ADa+completo


🦸‍♂️ Git al Rescate: Tu Superpoder de "Deshacer"

La Analogía del Videojuego

Sin Git = Jugar sin guardar partida. Si mueres, vuelves al inicio.
Con Git = Tienes puntos de guardado automáticos. ¡Puedes volver a cualquier momento!

El Comando Mágico: git checkout -- .

bash
# ¡ESTE COMANDO ES TU VARITA MÁGICA!
git checkout -- .

¿Qué hace? Reconstruye TODO tu proyecto como estaba en el último commit.

Traducción: "Git, por favor, haz que mi proyecto se vea exactamente como en la última 'foto' que tomé."


🎬 Demostración Paso a Paso

Paso 1: Crear un Desastre (A Propósito)

  1. Abre tu archivo index.html

  2. Borra TODO el contenido

  3. Escribe cualquier tontería (o deja que tu gato lo haga)

  4. Guarda los cambios ⚠️

  5. Cierra el editor

  6. Abre de nuevo... ¡OH NO! 😱

Paso 2: Usar Tu Superpoder Git

bash
# Navega a tu proyecto
cd curso-git/01-bases

# ¡EJECUTA LA MAGIA!
git checkout -- .

# En segundos verás:
# (Git no dice nada = ¡ÉXITO!)

Paso 3: Verificar la Magia

  • Abre index.html de nuevo

  • ¡TODO está como antes!

  • Recarga el navegador → ¡El sitio funciona! 🎉


📁 ¿Qué Archivos Recupera Git?

Archivos con Seguimiento (Tracked)

Ejemplos que SÍ recupera:

  • index.html (ya lo habías añadido con git add)

  • css/style.css

  • js/app.js

  • Cualquier archivo que haya tenido git add

Archivos SIN Seguimiento (Untracked)

Ejemplo que NO recupera:

bash
# Creas un nuevo archivo
touch nuevo-archivo.html

# NO haces git add
# Lo borras accidentalmente
# git checkout -- . NO lo recupera

¿Por qué? Git no sabe que este archivo es importante para ti.


🛡️ Los 3 Superpoderes de git checkout -- .

1. Recuperar Archivos Borrados

bash
# Borraste accidentalmente:
rm index.html css/style.css

# ¡Recupéralos!
git checkout -- .

2. Deshacer Cambios No Deseados

bash
# Modificaste 20 archivos por error
# ¡Vuelve al estado anterior!
git checkout -- .

3. Limpiar Experimentos Fallidos

bash
# Probaste un nuevo diseño (50 archivos cambiados)
# No te gustó el resultado
git checkout -- .  # ¡Vuelve al punto seguro!

🔍 ¿Cómo Funciona REALMENTE Git?

La Analogía de las Fotografías

  1. Commit = Tomas una foto de TODO tu proyecto

  2. Git = Guarda esa foto en su "álbum secreto" (la carpeta .git)

  3. checkout -- . = Git busca la última foto y reconstruye todo igual

text
📸 Álbum de Fotos de Git (en .git/)
├── 📸 Foto 1: "Primer commit" - 10:00 AM
├── 📸 Foto 2: "Agregué menú" - 11:30 AM
└── 📸 Foto 3: "Diseño nuevo" - 02:15 PM  ← ÚLTIMA FOTO

Cuando ejecutas git checkout -- .:
Git dice: "Ah, quieres que tu proyecto se vea como en la Foto 3. ¡Listo!"


⚠️ Limitaciones y Advertencias IMPORTANTES

Lo Que SÍ Recupera:

✅ Archivos con git add previo
✅ Cambios no guardados en un commit
✅ Archivos borrados accidentalmente
✅ Modificaciones destructivas

Lo Que NO Recupera:

❌ Archivos NUEVOS sin git add
❌ Cambios que ya fueron commiteados (hay otros comandos)
❌ Archivos fuera del repositorio Git

🎯 Regla de Oro:

bash
# ¿Quieres que Git proteja un archivo?
# DEBES hacer esto primero:
git add nombre-del-archivo
# o para todos:
git add .

🎮 Práctica Guiada: Salva Tu Proyecto

Ejercicio 1: El Desastre Controlado

bash
# 1. Ve a tu proyecto
cd curso-git/01-bases

# 2. Crea un backup mental (opcional)
git status  # Verifica que esté limpio

# 3. ¡ROMPE ALGO!
# Abre index.html y cambia el título a "¡DESASTRE!"
# Borra la mitad del CSS
# Guarda TODO

# 4. Usa tu superpoder
git checkout -- .

# 5. Verifica que todo volvió a la normalidad

Ejercicio 2: Archivo Nuevo vs. Archivo Viejo

bash
# 1. Modifica un archivo existente
echo "<!-- Cambio peligroso -->" >> index.html

# 2. Crea un archivo nuevo
touch prueba.html

# 3. Deshace cambios
git checkout -- .

# 4. Verifica:
# - index.html recuperó su estado original ✓
# - prueba.html SIGUE existiendo (Git no lo toca)

📋 Flujo de Recuperación Rápida


🧠 Preguntas Frecuentes

❓ "¿Esto borra mis commits anteriores?"

NO. Solo afecta los archivos de trabajo, no el historial.

❓ "¿Puedo recuperar versiones más antiguas?"

SÍ, pero con otros comandos que veremos luego.

❓ "¿Qué pasa si hago commit del error?"

Hay soluciones, pero es mejor evitar commitear errores.

❓ "¿Debo usar esto seguido?"

Solo en emergencias. Para cambios pequeños, mejor usa:

bash
# Para un archivo específico
git checkout -- nombre-archivo

🎯 Resumen de Comandos de Rescate

SituaciónComandoEfecto
Todo el proyecto dañadogit checkout -- .Recupera TODO al último commit
Un archivo específico dañadogit checkout -- archivo.htmlRecupera solo ese archivo
Ver qué se dañógit statusMuestra archivos modificados
Ver historial de salvacióngit log --onelineMuestra tus "puntos de guardado"

💡 Consejos Profesionales

1. Haz Commit Frecuentemente

Cuanto más commits tengas, más puntos de recuperación.

2. Usa git status Antes de Paniquear

bash
# Antes de usar checkout, verifica:
git status
# Te muestra exactamente qué cambió

3. Añade Archivos Importantes INMEDIATAMENTE

bash
# Al crear un archivo importante:
touch archivo-importante.js
git add archivo-importante.js  # ¡NO TE OLVIDES!

4. Mantén un "Árbol Limpio"

bash
# Estado ideal:
git status
# On branch main
# nothing to commit, working tree clean  ✅

📝 Cuestionario de Comprensión

Pregunta 1

El comando git checkout -- . recupera tu proyecto a:
a) El estado inicial (cuando hiciste git init)
b) El estado del último commit ✅
c) El estado de hace una semana
d) Un estado aleatorio

Pregunta 2

Si creas un archivo nuevo SIN hacer git add y luego lo borras:
a) git checkout -- . lo recupera automáticamente
b) Git te pregunta si quieres recuperarlo
c) NO puedes recuperarlo con git checkout -- . ✅
d) Se recupera con git reset

Pregunta 3

¿Qué hace Git cuando ejecutas git checkout -- .?
a) Borra todos tus commits
b) Crea una copia de seguridad nueva
c) Reconstruye los archivos como en la última "foto" ✅
d) Sube todo a Internet

Pregunta 4

Antes de usar git checkout -- ., es buena idea:
a) Reiniciar la computadora
b) Ejecutar git status para ver qué cambió ✅
c) Hacer otro commit
d) Borrar la carpeta .git

Pregunta 5

Para recuperar solo UN archivo específico, usas:
a) git checkout -- .
b) git checkout -- archivo.html ✅
c) git restore archivo.html
d) git fix archivo.html

Pregunta 6

El mensaje "working tree clean" en git status significa:
a) Hay muchos cambios sin guardar
b) No hay cambios desde el último commit ✅
c) El proyecto tiene errores
d) Git no está inicializado

Pregunta 7

Si tu gato arruina 3 archivos y guardas los cambios:
a) Estás perdido sin esperanza
b) git checkout -- . recupera los 3 archivos ✅
c) Solo puedes recuperar 1 archivo
d) Necesitas reinstalar Git

Pregunta 8

¿Con qué frecuencia deberías hacer commit?
a) Solo al final del proyecto
b) Una vez por semana
c) Cada vez que terminas algo importante ✅
d) Nunca, es peligroso

Pregunta 9

La carpeta .git contiene:
a) Solo configuración
b) Todas las "fotos" (commits) de tu proyecto ✅
c) Archivos temporales
d) Copias de otros proyectos

Pregunta 10

Después de git checkout -- . exitoso:
a) Git muestra un mensaje largo de confirmación
b) No ves mensaje (silencio = éxito) ✅
c) Aparece un error
d) Se cierra la terminal


🎉 ¡Increíble! Ahora tienes un superpoder que pocos desarrolladores principiantes conocen. Git no es solo para trabajo en equipo, ¡es tu mejor seguro contra accidentes!

💡 Tarea práctica: Intenta romper tu proyecto de 3 maneras diferentes y recupéralo con git checkout -- .. ¡La confianza viene de la práctica!


Respuestas correctas: 1-b, 2-c, 3-c, 4-b, 5-b, 6-b, 7-b, 8-c, 9-b, 10-b

Comentarios

Entradas populares de este blog

Php-agregar

limpiar la URL