Cómo restaurar un archivo eliminado en Git
El comando correcto depende de una cosa: hasta dónde llegó la eliminación. Estos son los tres casos, cómo encontrar la confirmación que eliminó un archivo y qué Git no puede recuperar.
Escrito por Kodmora
La casa de software detrás de GitTree
- Deshacer y recuperar
- Historial de commits
En esta página
Para restaurar un archivo eliminado que aún no ha confirmado, ejecute `git restore path/to/file`. Si la eliminación ya está en una confirmación, busque esa confirmación con git log --diff-filter=D -- path/to/file y luego ejecute git restore --source=<commit>^ -- path/to/file. Git puede recuperar cualquier cosa que alguna vez almacenó, por lo que un archivo confirmado casi siempre es recuperable.
| que paso | Comando |
|---|---|
| Eliminado, no preparado | git restore path/to/file |
| Eliminado y preparado | git restore --staged --worktree path/to/file |
| Eliminado en una confirmación | git restore --source=<commit>^ -- path/to/file |
¿Cómo restauro un archivo que acabo de eliminar?
Si git status enumera el archivo en "Cambios no preparados para confirmación", cópielo nuevamente desde el índice:
git restore src/app.ts¿Cómo restauro un archivo después de git rm?
git rm elimina el archivo y prepara la eliminación, por lo que se muestra en "Cambios a confirmar". Restaure tanto el índice como la carpeta de trabajo desde HEAD:
git restore --staged --worktree src/app.ts¿Cómo restauro un archivo eliminado en una confirmación anterior?
Primero busque la confirmación que lo eliminó. --diff-filter=D muestra solo eliminaciones:
git log --oneline --diff-filter=D -- src/app.tsEsa confirmación ya no tiene el archivo, pero su padre sí. ^ significa "el padre de", por lo que esto restaura la última versión antes de la eliminación:
git restore --source=4f2a9c1^ -- src/app.tsEl archivo regresa a su carpeta de trabajo como un nuevo cambio. Revíselo, luego prepárelo y confírmelo como cualquier otra edición. En un Git anterior a 2.23, git checkout 4f2a9c1^ -- src/app.ts hace el mismo trabajo y también prepara el archivo.
¿Qué pasa si no recuerdo el camino completo?
Busque en cada rama el nombre del archivo. Mantenga las comillas, para que Git expanda el patrón en lugar de su shell:
git log --all --diff-filter=D --name-only --oneline -- "**/app.ts"¿Qué no puede traer Git?
- Un archivo que nunca fue preparado ni confirmado. Git nunca lo almacenó. Verifique el historial local de su editor o la copia de seguridad de su sistema.
- Archivos eliminados por `git clean`. No se les realizó seguimiento, por lo que Git no conserva ninguna copia.
- Ediciones no preparadas reemplazadas por `git restore`. El comando las sobrescribe, así que ejecútelo solo cuando así lo desee.
Un archivo que se preparó una vez y luego se perdió a veces se puede encontrar con git fsck --lost-found, que enumera los blobs a los que nada apunta. La publicación sobre deshacer un reinicio, rebase o confirmación cubre confirmaciones perdidas, la lección sobre historial de archivos y blame muestra cómo seguir un archivo en el tiempo y la guía para descartar y limpiar explica qué guarda GitTree primero.
Cómo recuperar un archivo en GitTree
Presione Deshacer primero
Si GitTree descartó o limpió el archivo, presione Deshacer en la barra de herramientas. Guarda una instantánea de recuperación en
refs/ogt/trashantes de eliminar algo.buscar en el historial
Utilice la búsqueda del gráfico de confirmación para encontrar la confirmación que tocó el archivo, luego abra esa confirmación para leer su versión.
Utilice Objetos perdidos para confirmaciones perdidas
Elija Herramientas → Objetos perdidos para buscar confirmaciones que ya no tengan puntos de bifurcación.

Preguntas frecuentes
¿Cuál es la diferencia entre git restablecimiento y git checkout?
git restore se agregó en Git 2.23 para hacer un trabajo: restaurar archivos. git checkout también cambia de rama, lo que facilita su uso indebido.
¿Cómo puedo ver cuándo se eliminó un archivo?
Ejecute git log --diff-filter=D -- path/to/file. Enumera la confirmación que lo eliminó, con su autor y fecha.
¿Por qué git recovery dice que la especificación de ruta no coincide?
Git no conoce esa ruta en la fuente que elegiste. Si el archivo se eliminó en una confirmación, restáurelo desde el archivo principal de esa confirmación con --source=<commit>^.
¿Puedo restaurar una carpeta eliminada?
Sí. Pase la ruta de la carpeta en lugar de un archivo, por ejemplo git restore --source=<commit>^ -- src/utils.
¿Un archivo restaurado se confirma automáticamente?
No. Aparece como un cambio en su carpeta de trabajo. Preparalo y compromételo cuando estés listo.
Fuentes
Las afirmaciones sobre otros productos se compararon con sus páginas oficiales el 7 de noviembre de 2026. Los precios y las características cambian; Las páginas de los proveedores son la fuente de la verdad.