⏪ Cómo deshacer cambios en Git: reset, revert y checkout explicado fácil (guía completa)

Si trabajas con Git, hay una habilidad que te salva la vida una y otra vez:
Saber deshacer cambios correctamente.
Porque sí… todos hemos estado ahí 😅
- borraste algo importante
- hiciste un commit mal
- subiste algo que no debías
- rompiste el proyecto
La buena noticia:
👉 Git casi siempre te permite volver atrás.
En esta guía aprenderás:
- cuándo usar
reset,revertycheckout - diferencias reales
- ejemplos prácticos
- cómo recuperar errores
- buenas prácticas
🧠 La idea clave (muy importante)
Comando Qué hace reset borra cambios (reescribe historia) revert crea un commit que deshace checkout restaura archivos
👉 Elegir mal puede causar problemas, elegir bien te salva 🔥
🔄 Qué es git reset
reset mueve el puntero de Git (HEAD).
👉 Es como decir:
“olvida lo que pasó después de este punto”
Tipos de reset
🟢 Soft (mantiene cambios)
git reset --soft HEAD~1
👉 elimina el commit
👉 pero mantiene los cambios
🟡 Mixed (por defecto)
git reset HEAD~1
👉 elimina commit
👉 elimina staging
👉 mantiene archivos
🔴 Hard (PELIGROSO)
git reset --hard HEAD~1
👉 elimina TODO
👉 no hay vuelta fácil
🧪 Ejemplo práctico con reset
git log git reset --soft HEAD~1
Perfecto para corregir commits.
🔁 Qué es git revert
revert crea un commit nuevo que deshace otro.
👉 No borra historia
Ejemplo
git revert ID_DEL_COMMIT
Resultado:
- commit original sigue
- nuevo commit lo cancela
🧠 Cuándo usar revert
✔️ cuando ya hiciste push
✔️ cuando trabajas en equipo
✔️ cuando no quieres romper historial
📦 Qué es git checkout
checkout sirve para:
- cambiar ramas
- recuperar archivos
Recuperar archivo
git checkout archivo.js
👉 restaura archivo a último commit
Recuperar versión específica
git checkout ID archivo.js
⚖️ Diferencias clave
Comando Seguro Uso reset ⚠️ local revert ✅ remoto checkout ✅ archivos
🧪 Casos reales
Caso 1 — commit mal hecho
git reset --soft HEAD~1
Caso 2 — ya hiciste push
git revert HEAD
Caso 3 — borraste archivo
git checkout archivo.js
Caso 4 — quieres volver atrás completamente
git reset --hard ID
🧠 Comando salvavidas: reflog

git reflog
👉 muestra TODO lo que hiciste
Puedes recuperar commits así:
git reset --hard ID
⚠️ Errores comunes
❌ usar reset en repositorios compartidos
Rompe historial
❌ usar hard sin pensar
Pierdes datos
❌ no usar reflog
Pierdes oportunidad de recuperar
🧠 Buenas prácticas
✔️ usa revert en equipo
✔️ usa reset solo en local
✔️ usa reflog siempre
✔️ evita hard sin backup
🧠 Estrategia profesional
Antes de cualquier acción:
git status git log
📌 Resumen rápido
reset → borra revert → deshace checkout → recupera
🧠 Conclusión:
Dominar estos comandos es lo que te permite:
- trabajar sin miedo
- corregir errores rápido
- mantener control total
Y lo más importante:
Git no es peligroso… si sabes usarlo.