Encuentre un archivo eliminado en el historial de confirmación de un proyecto en Git
Este artículo trata sobre cómo encontrar un archivo eliminado en el historial de confirmaciones de un proyecto. Esto es útil cuando desea restaurar un archivo que eliminó en su proyecto.
Sin más preámbulos, entremos de inmediato.
Pasos para encontrar y restaurar un archivo eliminado en Git
En un escenario en el que eliminamos un archivo y no podemos recordar la ruta del archivo, podemos ejecutar el siguiente comando para encontrar la ruta.
$ git log --all --full-history -- "<OurFile>"
El comando anterior generará todas las confirmaciones de nuestro historial de confirmaciones que contengan los archivos cuyos nombres coincidan con nuestro patrón <NuestroArchivo>
. Por supuesto, tendrá que sustituir <NuestroArchivo>
con el nombre correcto de su archivo.
El resultado puede ayudarnos a obtener la ruta del archivo usando los hashes de confirmación, como se muestra a continuación.
$ git show --pretty="" --name-only <sha1-commit-hash>
Ahora tenemos la ruta a nuestro archivo. Sin embargo, queremos restaurar una versión específica del archivo.
¿Cómo hacemos esto?
Como se muestra a continuación, tendremos que obtener las confirmaciones en las que se modificó el archivo.
$ git log --all --full-history -- <path-to-file>
Para obtener la versión que queremos, ejecutaremos:
$ git show <sha1-commit-hash> -- <path-to-file>
Restaurar archivo en una copia de trabajo
Como se ilustra a continuación, usaremos el comando git checkout
para restaurar nuestro archivo.
$ git checkout <sha1-commit-hash>^ -- <path-to-file>
Agregamos el símbolo de intercalación ^
para indicarle a Git que obtenga la versión del archivo de la confirmación anterior. Esto asegura que obtengamos el contenido anterior del archivo si se eliminó.
En pocas palabras, el sistema de control de versiones de Git es muy estricto con respecto a la pérdida de datos de los usuarios. Si hay un archivo que eliminó en su proyecto y necesita restaurarlo, siga los pasos que hemos descrito anteriormente.
No necesita saber la ruta completa al archivo.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn