ตัวอย่างบทเรียน

Deshaciendo cambios: restore, reset, revert — correcto y peligroso

Uno de los temas más solicitados en entrevistas y en el trabajo real es cómo deshacer lo que ya se ha hecho. Analizaremos tres herramientas con diferentes 'niveles' de deshacer y nos centraremos en lo más importante: mostraremos escenarios concretos donde reset --hard puede arruinar el trabajo en equipo, mientras que revert es una alternativa segura. Soluciones buenas y malas, con consecuencias reales.

git restore git reset git revert
คุณจะเรียนรู้อะไรในบทเรียนนี้
  • Podrás deshacer cambios con confianza en cualquier etapa: en el directorio de trabajo, en el índice y en el historial de commits.
  • Entenderás la diferencia fundamental entre reset y revert y sabrás en qué situaciones es apropiado usar cada uno.
  • Aprenderás a evitar los errores típicos que cometen los principiantes al deshacer cambios en un repositorio compartido.

จุดเริ่มต้นของบทเรียน

Git restore: el botón de deshacer para archivos

  • Git restore — deshace cambios no confirmados
  • Funciona como el botón 'deshacer' en un editor
  • Es seguro — no modifica el historial de confirmaciones
  • Devuelve los archivos al último estado guardado

Imagina que accidentalmente guardaste un archivo con un error y quieres volver atrás. Git restore actúa como un botón mágico de deshacer — devuelve los archivos al último estado confirmado. A diferencia de otros comandos de deshacer, restore funciona solo con cambios no confirmados y es completamente seguro para el historial de tu proyecto. Es la primera herramienta a la que debes recurrir cuando hagas cambios accidentales y necesites una solución rápida sin arriesgar el historial de cambios.

Deshaciendo cambios en el directorio de trabajo

  • git restore archivo.txt — devuelve el archivo al último commit
  • Deshace todos los cambios en el directorio de trabajo
  • Es seguro — los cambios se pueden recuperar a través del editor
  • Verifica el estado con git status antes de restaurar

Supongamos que has estado editando un archivo de configuración durante media hora, pero te das cuenta de que vas por mal camino. En lugar de deshacer cada cambio manualmente, ejecuta git restore config.yml. El archivo volverá inmediatamente al estado del último commit. Es como si simplemente cerraras el archivo sin guardar, pero con la garantía de volver a una versión funcional.

# Demostración de restauración de archivo
$ echo "Cambios erróneos" > main.py
$ git status
$ git restore main.py
$ cat main.py
$ git status

Eliminando un archivo del índice

  • git restore --staged archivo.txt — elimina el archivo del índice
  • Conserva los cambios en el directorio de trabajo
  • Precaución: sin --staged se perderán los cambios
  • Siempre verifica git status antes de ejecutar

Un error común es añadir accidentalmente al índice un archivo que no debería estar allí. Por ejemplo, si ejecutas git add punto e incluyes un archivo temporal de configuración. El comando git restore con la bandera staged y el nombre del archivo config.tmp lo eliminará cuidadosamente del índice, pero mantendrá todos los cambios en el directorio de trabajo. Sin la bandera staged, perderías tu trabajo, por lo que siempre es importante verificar el estado con git status antes de ejecutar restore. Ahora sabes cómo deshacer cambios antes del commit. Pero, ¿qué pasa si el error ya está en el historial? Ahí es donde entra en juego git reset.

# Se añadió accidentalmente un archivo al índice
$ git add config.tmp
$ git status

# Eliminar del índice, manteniendo los cambios
$ git restore --staged config.tmp
$ git status

# Verificar que el archivo permanece en el directorio de trabajo
$ ls -la config.tmp

บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก

ฉบับเต็มมีสไลด์เพิ่มอีก 24 สไลด์

วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก

เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิก

เนื้อหาบทเรียน

  1. Git restore: el botón de deshacer para archivos
  2. Deshaciendo cambios en el directorio de trabajo
  3. Eliminando un archivo del índice
  4. Git reset: cómo funciona el rebobinado del historial
  5. Reset --soft seguro: cambios en el índice
  6. Reset --mixed estándar: cambios en el directorio de trabajo
  7. Peligro: reset --hard elimina cambios SIN POSIBILIDAD de recuperación
  8. Reset: tres modos, un solo comando
  9. git reset --soft: reescribiendo el historial de forma segura
  10. Cuándo usar --mixed y --hard
  11. Lista de verificación: ¿qué reset elegir?
  12. ¿Por qué no podemos simplemente borrar un error?
  13. Cómo funciona git revert en la práctica
  14. Revertir múltiples confirmaciones a la vez
  15. Reset: reescribiendo el historial localmente
  16. Revert: deshaciendo cambios de forma segura
  17. Qué ocurre al hacer push: reset vs revert
  18. Por qué reset --hard es peligroso
  19. Ejemplo de pérdida de cambios
  20. Cómo recuperar datos
  21. Peligros del retroceso en ramas compartidas
  22. Retroceso seguro con revert
  23. Secuencia correcta de acciones
  24. Cuándo usar: restore, reset o revert
  25. Reglas para trabajar con historial personal y compartido
  26. Guía paso a paso ante un error
  27. Conclusiones y tarea: El señor de las deshaceres

บทความเกี่ยวกับบทเรียนนี้

บทเรียนทั้งหมดในคอร์สนี้

  1. Introducción: Git desde cero hasta desarrollador seguro
  2. Por qué necesitamos Git y por qué es imprescindible para conseguir trabajo
  3. Instalación y configuración: preparando Git para su primer uso
  4. Primer repositorio: init, add, commit y la magia del índice
  5. Leyendo el historial: log, diff, show y navegación por el pasado
  6. Ramas: la realidad paralela de tu código
  7. Deshaciendo cambios: restore, reset, revert — correcto y peligroso
  8. GitHub y repositorios remotos: tu código en la nube
  9. Trabajo en equipo: forks, ramas de características y pull requests
  10. Conflictos de fusión: no entres en pánico, comprende y resuelve
  11. Flujos de trabajo con Git en equipos reales: ¿qué workflow elegir?
  12. Herramientas avanzadas: rebase, stash, cherry-pick y etiquetas
  13. Proyecto final: simulando un desarrollo en equipo real