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


https://media2.dev.to/dynamic/image/width%3D800%2Cheight%3D%2Cfit%3Dscale-down%2Cgravity%3Dauto%2Cformat%3Dauto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcx7c746kwfaa97quvnch.png



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, revert y checkout
  • 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


https://assets.datacamp.com/production/repositories/6772/datasets/ba70fcd1d2af987c34b4d5f7a3e4922612cfbab1/Git%20Reflog%20Terminal%20Output%20Example.png


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.


Volver al post Pilar: