¿Has perdido archivos en Git? Recupera los archivos eliminados y sin confirmar

Un cambio de rama hace que tu carpeta de origen parezca vacía. Un reinicio completo borra las modificaciones de esta mañana. O un comando de limpieza elimina un script que nunca has confirmado. Estos Archivos perdidos en Git Las situaciones parecen similares, pero el método de recuperación adecuado depende de si Git llegó a almacenar en algún momento el contenido que falta.
Que no aparezca en tu carpeta de trabajo no significa necesariamente que haya desaparecido del repositorio. Es posible que aún haya una copia utilizable en una confirmación, en el área de preparación, en otra rama o en un stash. Empieza por buscar en esas ubicaciones antes de escanear el disco.
Esta guía sigue ese orden. Si Git no tiene ninguna copia y el archivo original ha desaparecido del almacenamiento, el guía de recuperación de archivos eliminados trata la siguiente rama. Para ese caso concreto de Windows, Magic Data Recovery ofrece una opción de recuperación a nivel de almacenamiento; no reconstruye el historial de Git.
Índice
Archivos perdidos en Git: elige el método de recuperación adecuado
La respuesta más rápida: Restaurar un archivo controlado desde el índice o desde una confirmación conocida. Comprueba el reflog en busca de confirmaciones perdidas y el historial local en busca de modificaciones que Git nunca haya guardado. Utiliza la recuperación del disco solo cuando no quede ninguna copia utilizable.
¿Qué ha pasado? | En caso de que exista una copia | Empieza por aquí |
Has eliminado un archivo con control de versiones sin pasar la eliminación por la fase de preparación. | El índice de Git | Restaurar la ruta individual |
Has simulado la eliminación o has utilizado | La última actualización | Restaurar esa ruta desde |
Tú has realizado la eliminación | Una confirmación anterior | Busca una revisión que contenga el archivo |
Un «reset», un «rebase» o una modificación ocultaron una confirmación | Registro de referencia local | Crea una rama de recuperación en la confirmación anterior |
Has preparado el contenido, pero nunca lo has publicado. | Índice u objetos «blob» que se han conservado | Consulta el índice y, a continuación, revisa los objetos |
Nunca has añadido, confirmado ni guardado temporalmente el contenido | Historial de ediciones, copias de seguridad, disco original | Comprueba las copias antes de la recuperación del disco |
Los archivos desaparecieron tras cambiar de rama | Otra rama o configuración de checkout | Confirma primero la ubicación y la sucursal |
Esta distinción es importante para Recuperar archivos sin confirmar en Git búsquedas: “sin confirmar” incluye tanto el contenido preparado como los cambios que Git nunca ha almacenado. Estos dos casos tienen límites de recuperación diferentes.
Protege el repositorio antes de ejecutar comandos
Detén la compilación, la instalación de dependencias y la limpieza automática. Si la unidad funciona con normalidad, copia el repositorio a otra unidad física, incluidos los metadatos ocultos de Git. Una clonación normal no conserva todas las pistas de recuperación locales, como el índice, el reflog y los objetos inaccesibles.
En el caso de los árboles de trabajo vinculados o los submódulos, .git Puede tratarse de un archivo de puntero en lugar de un directorio. Conserva también el directorio de Git al que hace referencia. Si sospechas que se trata de un fallo físico del disco, interrumpe las operaciones habituales de copia y análisis y busca ayuda profesional para la recuperación.

Evita estos comandos durante la recuperación:
git reset --hard, que descarta los cambios de trabajo controlados y puede eliminar las rutas no controladas que supongan un obstáculo.git clean -fdogit clean -fdx, que elimina el contenido no registrado;-xtambién incluye los archivos ignorados.git gc --prune=nowygit prune, lo que puede eliminar objetos que aún necesitas.
Git’s restablecer la documentación y documentación clara explicar estos efectos. Por lo general, no es necesario realizar una reversión de todo el repositorio cuando solo falta un archivo.
Utiliza los ejemplos que aparecen a continuación desde la raíz del repositorio. Sustituye los nombres de archivo y los hash de ejemplo por los tuyos propios. Los comandos de restauración requieren Git 2.23 o una versión posterior y funcionan en Git Bash en Windows, así como en terminales de macOS y Linux.
Comprueba si el archivo ha desaparecido o simplemente está en otro lugar
Antes de intentar Recuperación de archivos de Git, confirma qué repositorio y qué rama has abierto:
- git rev-parse –show-toplevel
git status --shortgit branch --show-currentgit branch --all
A continuación, busca en el Explorador o en el Finder utilizando el nombre exacto del archivo, la extensión y la hora aproximada de modificación. Comprueba otra copia de trabajo, una carpeta de proyecto renombrada, un dispositivo de almacenamiento externo y las carpetas excluidas de tu editor.
Hay tres conceptos de Git que lo explican casi todo Archivos perdidos en Git casos:
- Árbol de trabajo: los archivos que estás editando ahora mismo.
- Índice: el contenido que has seleccionado con
git addpara la próxima confirmación. - Confirmar: una instantánea del proyecto guardada en el historial de Git.
Git no guarda automáticamente todos los cambios. La fase de preparación captura el contenido en ese momento, por lo que los cambios posteriores pueden encontrarse únicamente en tu árbol de trabajo. Consulta la documentación de Git sobre Guía para registrar los cambios.
Recuperar archivos eliminados en Git antes de realizar un commit
Lo mejor para: un archivo controlado que has eliminado localmente, aunque el repositorio aún contenga su contenido.
En primer lugar, comprueba la ruta:
git status --short -- src/app.jsgit diff -- src/app.jsgit diff --cached -- src/app.js
En resumen, la primera columna describe los cambios en el índice; la segunda, los cambios en el árbol de trabajo. D significa una supresión sin etapas. D significa una supresión por etapas.
Recuperar una eliminación no confirmada del índice
A Recuperar archivos eliminados en Git cuando el índice todavía contiene el archivo:
git restore -- src/app.js
Esto restaura la versión preparada, que puede diferir de la última confirmación. Por ejemplo, si has preparado una función actualizada antes de borrar el archivo, Git puede recuperar ese contenido preparado. Sin embargo, este comando no permite recuperar modificaciones posteriores que no se hayan preparado.
Recuperar una eliminación en fase de preparación desde HEAD
Si has simulado la eliminación, el índice ya no contiene el archivo en esa ruta. Tras guardar cualquier copia útil, restaura su última versión confirmada:
git restore --source=HEAD --staged --worktree -- src/app.js
Esto modifica tanto el índice como el archivo de trabajo de esa ruta. No recupera una versión más reciente que aún no se haya confirmado. Git’s recuperar la documentación explica las opciones de origen y destino.
En el caso de un archivo recién añadido a un repositorio que no tiene ninguna confirmación, TÍTULO aún no existe. Si el índice sigue conteniendo el archivo, utiliza en su lugar el método basado en el índice.
Restaurar un archivo a partir de una confirmación anterior o de otra rama
Lo mejor para: una eliminación confirmada, una versión anterior del archivo o un archivo que solo falta en tu rama actual.
Empecemos por su historia:
git log --all --oneline -- src/app.js
Si no recuerdas su ruta anterior, muestra los registros de eliminación:
git log --all --diff-filter=D --summary
Revisa una confirmación candidata antes de restaurar nada:
- git show abc1234:src/app.js
Sustituir abc1234 con una confirmación que realmente contenga el archivo. A continuación, restaura solo esa ruta:
git restore --source=abc1234 -- src/app.js
Si abc1234 Es la confirmación de la eliminación; comprueba su confirmación principal con git show abc1234^:src/app.js. En el caso de una simple eliminación, es posible que la versión deseada se encuentre en la versión de origen. Las confirmaciones de fusión tienen varias versiones de origen, por lo que conviene verificar el contenido en lugar de dar por sentado que la primera versión de origen es la correcta.
Para Faltan archivos en Git tras cambiar de rama, revisa la rama que contiene el archivo:
- git show feature/login:src/app.js
git restore --source=feature/login -- src/app.js
Estos ejemplos conservan tu rama actual y el resto de archivos. Consulta el Documentación sobre el historial de Git para las búsquedas en el historial y el Mostrar la documentación de Git para revisar el contenido almacenado. Es posible que las búsquedas en el historial requieran el nombre de archivo anterior si alguien ha cambiado el nombre del archivo.
Utiliza Reflog para recuperar los cambios perdidos en Git tras un «reset»
Lo mejor para: trabajo confirmado que desapareció de la historia visible tras un «reset», un «rebase», una «amend» o un cambio de rama.
Para Recuperación tras un «git reset hard», consulta tu historial de referencias locales:
- git reflog –date=local
Busca la confirmación anterior a la operación no deseada. Comprueba su contenido y, a continuación, guárdala en una nueva rama con el siguiente nombre:
- git show –stat abc1234
git branch recovery-lost-work abc1234
La creación de la rama no cambia tu árbol de trabajo. Posteriormente, podrás consultar o restaurar archivos concretos desde ella.
Reflog no registra todas las modificaciones realizadas en los archivos. Registra los movimientos de las referencias. Si el contenido perdido nunca se incluyó en una confirmación, el reflog por sí solo no puede recuperarlo. Las entradas y los objetos también tienen un periodo de retención limitado. Git explica el mecanismo en su Documentación de reflog.
Para Archivos perdidos en Git tras eliminar una rama, la Guía oficial de recuperación de datos de Git describe cómo recuperar las confirmaciones que se han conservado. Conserva sin demora una confirmación útil en cuanto la identifiques.
Comprobar el contenido almacenado y el contenido preparado pero sin confirmar
Recuperar archivos de un alijo
Antes de asumir Cambios perdidos en Git Si los guardas de forma permanente, comprueba si los has apartado:
- git stash list
- git stash show –include-untracked –name-only ‘stash@{0}’
- git stash show -p –include-untracked ‘stash@{0}’
Elige el stash en función de su contenido, no solo de su fecha. En una copia protegida con un árbol de trabajo limpio, aplica la entrada correcta:
- git stash apply ‘stash@{0}’
A diferencia de pop, aplicar mantiene la entrada en la lista de almacenamiento. Esto puede provocar conflictos, así que revisa el resultado antes de continuar.
Un repositorio predeterminado no incluye archivos no controlados. Estos requieren -u al crear el stash; los archivos ignorados requieren -a. Consulta el Documentación sobre «stash» de Git.
Recuperar contenido preparado a partir de los objetos que se han conservado
Para Recuperar archivos sin confirmar en Git casos en los que ya hayas ejecutado git add, comprueba si el índice sigue conteniendo el contenido:
- git ls-files –stage — src/app.js
- git show :src/app.js
El segundo comando muestra la versión indexada. El Documentación de «ls-files» de Git explica cómo revisar las entradas del índice.
Si el índice se ha sustituido tras un restablecimiento, es posible que aún quede un blob que contenga el contenido en fase de preparación. Trabaja en tu copia conservada del repositorio:
- git fsck –full –no-reflogs –unreachable
Para un mancha inaccesible candidato, comprueba su contenido:
- git cat-file -p BLOB_HASH
Sustituir BLOB_HASH con un identificador de objeto real. Busca una función, un comentario o un valor de configuración característico. Los blobs contienen contenido, no el nombre de archivo original, por lo que la identificación puede llevar tiempo.
En el caso de los objetos que cuelgan, git fsck --lost-found escribe material de recuperación en .git/lost-found/. No garantiza que se exporten todos los objetos inaccesibles ni que se recree un árbol de directorios completo. Véase Git fsck y Git cat-file.
Exporta un blob confirmado a un nuevo archivo en otra unidad utilizando la redirección de salida de Git Bash o un método de exportación que conserve los bytes. Evita copiar contenido binario desde la salida de la terminal. Esta forma de proceder ayuda a Recuperación de archivos en la zona de preparación de Git, pero solo mientras los objetos en cuestión permanezcan intactos.
Recuperar archivos no registrados mediante el historial del editor y las copias de seguridad
Lo mejor para: archivos eliminados o modificaciones más recientes que Git nunca ha añadido, confirmado ni guardado temporalmente.
A Recuperar archivos no registrados, comprueba tu editor antes de escanear el almacenamiento. En VS Code, abre la paleta de comandos y ejecuta:
- Historia local: Buscar una entrada para restaurarla
Selecciona el archivo que falta, revisa las entradas disponibles y compara su contenido. En el caso de un archivo existente, la vista «Línea de tiempo» también puede mostrar el historial local. La disponibilidad depende de las entradas guardadas, la configuración y el periodo de retención; no se garantiza que se guarden los datos introducidos que no se hayan guardado. Microsoft lo documenta en el Guía de la interfaz de usuario de VS Code.
A continuación, revisa la Papelera de reciclaje o la Papelera, los elementos eliminados en la nube, el historial de versiones en la nube y las copias de seguridad del sistema. Los comandos de eliminación desde la terminal pueden saltarse la Papelera de reciclaje. Comprueba la ruta de almacenamiento original en lugar de dar por hecho que todos los archivos del proyecto se encontraban dentro del repositorio.
Un repositorio remoto puede restaurar las confirmaciones enviadas, pero no incluye automáticamente los archivos locales no controlados, las modificaciones no guardadas ni los «stashes» privados. Pregunta a tus compañeros de equipo si tienen copias independientes, por si el trabajo que falta se hubiera compartido en otro lugar.
Para git clean recovery, estas copias externas son especialmente importantes: Git no puede recuperar contenido que nunca ha almacenado, simplemente porque la eliminación se haya producido dentro de un repositorio.
Cuando los archivos perdidos de Git requieren una recuperación del disco
No procedas a la recuperación del almacenamiento hasta que hayas respondido a estas preguntas:
- ¿Contiene la rama, el índice, la confirmación, el stash u objeto persistente correctos la versión necesaria?
- ¿Lo puede proporcionar tu editor, el historial en la nube o la copia de seguridad?
- ¿Ha desaparecido el archivo de su ubicación original?
- ¿El dispositivo sigue siendo estable y detectable?
Si no existe ninguna copia válida y el archivo ha desaparecido realmente, Archivos perdidos en Git se convierte en un problema a nivel del disco. Algunos ejemplos son un script no registrado que se ha eliminado durante una limpieza, un directorio de proyecto borrado o una unidad formateada que contenía trabajo local.
Recuperar archivos de proyecto eliminados con Magic Data Recovery
Magic Data Recovery Admite situaciones de recuperación de Windows relacionadas con la eliminación, el formateo y los errores del sistema de archivos. Su flujo de trabajo de análisis y filtrado ofrece una forma práctica de examinar los archivos de proyecto recuperables cuando Git no dispone de ninguna copia almacenada.
Compatible con Windows 7/8/10/11 y Windows Server
La ventaja más relevante es el alcance: Git busca en sus propios registros, mientras que esta herramienta analiza el almacenamiento original. En el caso de un script local o un archivo de proyecto eliminado, esto lo convierte en una opción más adecuada que ejecutar repetidamente comandos de Git. El flujo de trabajo visual de análisis y revisión también te permite comprobar los elementos candidatos antes de incorporarlos de nuevo al proyecto.

Sigue estos cuatro pasos:
- Instálalo de forma segura. Instala y ejecuta la herramienta desde otra unidad o otro ordenador, siempre que sea posible. Reduce al mínimo las operaciones de escritura en el dispositivo afectado.
- Escanea el volumen original. Selecciona la unidad en la que se encontraban los archivos que faltan, aunque tu copia de trabajo actual esté en otra ubicación.
- Revisar a los candidatos. Utiliza los filtros disponibles de nombre de archivo, ruta y tipo. Previsualiza los formatos compatibles; comprueba los archivos de origen en un editor tras la exportación.
- Recupérate en otro sitio. Guarda los archivos seleccionados en una unidad física diferente y mantén intacto el repositorio original hasta que se haya realizado la verificación.
La recuperación puede devolver versiones anteriores, archivos incompletos o nombres modificados. La herramienta no puede inventar código no guardado, reconstruir relaciones de commit que falten ni restaurar dependencias automáticamente. Su utilidad en este caso radica en que soluciona la pérdida real de datos almacenados cuando fallan las opciones de recuperación nativas.
Comprueba los archivos recuperados antes de volver a incorporarte al proyecto
Para Recuperación de archivos perdidos en Git, el éxito consiste en obtener contenido útil, no solo un nombre de archivo en el resultado de un análisis.
Abre los archivos fuente recuperados en una carpeta aparte. Comprueba las funciones importantes, la codificación, los finales de línea y si los últimos cambios realmente existen. El tamaño de los archivos y las marcas de tiempo ofrecen pistas, pero no garantizan que hayas encontrado la versión correcta.
Compara el candidato con el proyecto actual. Copia solo los archivos verificados en un entorno de trabajo protegido y revisa git diff, y ejecuta la compilación o las pruebas correspondientes. Comprueba por separado los archivos de configuración y los recursos externos.
Por último, confirma los cambios restaurados en una rama de recuperación. Evita sustituir todo un .git directorio con metadatos parcialmente recuperados; recupera el contenido original por separado si la integridad del repositorio sigue siendo incierta.
Si la recuperación falla, comprueba la limitación
Un análisis más exhaustivo no puede recuperar el contenido sobrescrito. La función TRIM de los SSD y la posterior limpieza del dispositivo también pueden hacer que los datos eliminados dejen de estar disponibles. Microsoft’s Guía para la recuperación de archivos en Windows recomienda reducir el uso de la unidad y guardar los datos recuperados en una unidad independiente.
Si el dispositivo se desconecta repetidamente, emite ruidos extraños o da errores de lectura, deja de realizar escaneos repetidos. Para garantizar la estabilidad del dispositivo, vuelve a comprobar el volumen original y cualquier copia de seguridad externa antes de probar con otro software.
Algunos Archivos que faltan en Git Necesitas otra explicación. El «checkout» disperso deja fuera del árbol de trabajo, de forma intencionada, algunas rutas controladas, mientras que los submódulos mantienen el contenido del repositorio por separado. Revisa esas configuraciones antes de considerar una carpeta vacía como una eliminación. La documentación de Git checkout disperso y inicialización del submódulo.
Evitar la pérdida de archivos en Git en futuros proyectos
Guarda los hitos útiles y envía las ramas importantes a un repositorio remoto. Antes de limpiar un espacio de trabajo, previsualiza las rutas afectadas con git clean -nd; si quieres incluir archivos ignorados, comprueba git clean -ndx también.
Mantén activado el historial local del editor y haz una copia de seguridad de toda la carpeta del proyecto. Incluye los recursos no controlados y los activos externos que un repositorio remoto de Git no pueda sustituir. Revisa .gitignore A propósito: si se omite un archivo importante, no se creará una copia de seguridad del mismo.
Antes de realizar un restablecimiento o un rebase, guarda el trabajo en curso y comprueba qué incluye realmente tu copia de seguridad o tu «stash». Una breve comprobación ahora puede ahorrarte horas de reconstrucción más adelante.
Conclusión: Emparejar los archivos perdidos de Git con la copia que aún existe
Lo mejor Archivos perdidos en Git La solución depende de dónde se conserve la versión que falta. Utiliza el índice o una confirmación para los archivos controlados, el reflog para las confirmaciones perdidas y el historial del editor o las copias de seguridad para el contenido que Git nunca almacenó.
Si esas comprobaciones confirman que se ha producido una pérdida real de datos almacenados, Magic Data Recovery es una opción razonable en Windows, ya que soluciona problemas relacionados con el borrado, el formateo y los errores del sistema de archivos que van más allá de los registros de Git. Sigue las instrucciones de guía de recuperación de archivos eliminados, guarda los candidatos en otro lugar y comprueba el código antes de volver a incorporarlo a tu proyecto.
Compatible con Windows 7/8/10/11 y Windows Server
Preguntas frecuentes
1. ¿Puede Git recuperar archivos que nunca se han confirmado?
git add o guardada en un archivo oculto. Si Git nunca almacenó la versión que falta, comprueba el historial local del editor, las copias de seguridad y las copias en la nube. La recuperación del disco puede ser útil tras un borrado efectivo, pero no puede reconstruir el código que solo existía en la memoria.2. ¿Cómo puedo recuperar un archivo borrado sin tener que restablecerlo todo?
git restore -- ruta/al/archivo. Si has preparado la eliminación, restaura la ruta desde TÍTULO con --en fase de preparación --árbol de trabajo. Para una eliminación definitiva, identifica una revisión anterior que contenga el archivo y restaura únicamente esa ruta. Conserva el contenido más reciente antes de sustituir nada.3. ¿Recupera el reflog de Git los cambios que no se han confirmado?
4. ¿Puedo recuperar archivos después de ejecutar «git clean -fd»?
5. ¿Por qué «git pull» indica que todo está al día cuando faltan archivos?
git status y restaura las eliminaciones registradas desde la fuente correspondiente. Comprueba también tu rama actual, la configuración de «sparse-checkout» y si la carpeta que falta pertenece a un submódulo.6. ¿Dónde guarda Git los archivos que se han perdido y se han recuperado?
git fsck --lost-found escribe objetos de recuperación pendientes en .git/lost-found/commit/ o .git/lost-found/other/. Las entradas «blob» contienen el contenido de los archivos, pero suelen carecer de los nombres de archivo originales. En los árboles de trabajo vinculados, localiza el directorio real de metadatos de Git antes de buscar estas carpetas.7. ¿Puede Magic Data Recovery restaurar todo el repositorio de Git?
8. ¿Al restaurar una versión anterior de Git se recuperan mis últimas modificaciones?
Jason es un especialista en recuperación de datos y asistencia técnica con más de 15 años de experiencia práctica. Ha trabajado intensamente con usuarios finales, resolviendo casos complejos de pérdida de datos y ofreciendo soluciones prácticas de recuperación para eliminaciones accidentales, unidades formateadas, sistemas de archivos dañados, particiones perdidas, fallos del sistema y otras situaciones de emergencia relacionadas con la recuperación. Su experiencia también abarca las copias de seguridad y la restauración, la reparación de archivos y la recuperación ante desastres, con especial énfasis en ofrecer una orientación segura, fiable y técnicamente precisa.
