Recuperar los archivos perdidos

GitGitBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Como desarrollador, es posible que te encuentres en situaciones en las que se eliminan y confirman (commit) accidentalmente archivos importantes. Este reto simula ese tipo de escenario, evaluando tu capacidad para utilizar las herramientas de inspección del historial y restauración de estado de Git para recuperar archivos perdidos y restaurar tu proyecto a un estado funcional.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/status("Check Status") git/BasicOperationsGroup -.-> git/commit("Create Commit") git/BranchManagementGroup -.-> git/checkout("Switch Branches") git/BranchManagementGroup -.-> git/log("Show Commits") git/BranchManagementGroup -.-> git/reflog("Log Ref Changes") subgraph Lab Skills git/add -.-> lab-387781{{"Recuperar los archivos perdidos"}} git/status -.-> lab-387781{{"Recuperar los archivos perdidos"}} git/commit -.-> lab-387781{{"Recuperar los archivos perdidos"}} git/checkout -.-> lab-387781{{"Recuperar los archivos perdidos"}} git/log -.-> lab-387781{{"Recuperar los archivos perdidos"}} git/reflog -.-> lab-387781{{"Recuperar los archivos perdidos"}} end

Recuperar los archivos perdidos

Antes de comenzar este reto, se ha inicializado un repositorio de Git para ti en el directorio ~/project/important-project. Este repositorio contiene varios commits, incluyendo la creación y posterior eliminación accidental de dos archivos importantes. Esto es lo que necesitas saber:

  • El repositorio se creó con un commit inicial que agregó un archivo README.md.
  • Dos archivos cruciales, important_algorithm.py y crucial_data.txt, se agregaron en un commit posterior.
  • Hubo algunos commits más con varios cambios.
  • En algún momento, important_algorithm.py y crucial_data.txt se eliminaron accidentalmente, y esta eliminación se confirmó (commit).
  • Ha habido al menos un commit más después de la eliminación accidental.

Tu tarea es recuperar los archivos eliminados navegando por el historial del repositorio y luego confirmar (commit) los archivos recuperados.

Tareas

  1. Investigar el historial del repositorio para encontrar cuándo se eliminaron important_algorithm.py y crucial_data.txt.
  2. Restaurar el repositorio al estado justo antes de la eliminación.
  3. Mantener los commits originales y crear un nuevo commit con el mensaje "Recover deleted files" (Recuperar archivos eliminados).

Requisitos

  • Trabajar en el directorio ~/project/important-project.
  • Asegurarse de que important_algorithm.py y crucial_data.txt estén presentes después de la recuperación.
  • Asegurarse de que el último mensaje de commit sea "Recover deleted files" (Recuperar archivos eliminados) y que se conserve el historial de commits.

Ejemplo

Después de completar exitosamente el reto, ejecutar ls en el directorio del proyecto debe mostrar:

$ ls ~/project/important-project
important_algorithm.py crucial_data.txt README.md

Ejecutar git status debe mostrar un directorio de trabajo limpio:

$ git status
On branch master
nothing to commit, working tree clean

Y git log debe mostrar tu nuevo commit en la parte superior:

$ git log --oneline
8876d8b (HEAD -> master) Recover deleted files
9b3525c Update project status
5e6234c Oops, accidentally deleted important files
9de9506 Update algorithm TODO
01c36ae Add crucial data and algorithm
638a98d Initial commit
✨ Revisar Solución y Practicar

Resumen

En este reto, te enfrentaste a un escenario común en Git: la eliminación accidental de archivos. Aprendiste cómo:

  1. Inspeccionar el historial completo de tu repositorio, incluyendo las acciones que cambiaron el HEAD.
  2. Restaurar tu repositorio a un estado previo específico, efectivamente "retrocediendo en el tiempo" en tu proyecto.
  3. Crear un nuevo commit para guardar el estado restaurado de tu proyecto.

Estas habilidades son invaluable para encontrar commits perdidos, deshacer errores y mantener un historial de proyecto claro. Recuerda, aunque estas herramientas pueden salvarte de desastres, siempre es mejor trabajar con cuidado y hacer commits frecuentes y bien documentados para evitar este tipo de situaciones desde el principio.

Al completar este reto, has adquirido experiencia práctica con algunas de las herramientas de recuperación más poderosas de Git, habilidades que te servirán bien a lo largo de tu carrera como desarrollador.