Setup and Config
Getting and Creating Projects
Basic Snapshotting
Branching and Merging
Sharing and Updating Projects
Inspection and Comparison
Patching
Debugging
External Systems
Server Admin
Guides
- gitattributes
- Command-line interface conventions
- Everyday Git
- Frequently Asked Questions (FAQ)
- Glossary
- Hooks
- gitignore
- gitmodules
- Revisions
- Submodules
- Tutorial
- Workflows
- All guides...
Administration
Plumbing Commands
- 2.51.1 → 2.52.0 no changes
-
2.51.0
2025-08-18
- 2.50.1 no changes
- 2.50.0 no changes
- 2.49.1 no changes
-
2.49.0
2025-03-14
- 2.43.1 → 2.48.2 no changes
-
2.43.0
2023-11-20
- 2.35.1 → 2.42.4 no changes
-
2.35.0
2022-01-24
- 2.30.1 → 2.34.8 no changes
-
2.30.0
2020-12-27
- 2.27.1 → 2.29.3 no changes
-
2.27.0
2020-06-01
- 2.25.1 → 2.26.3 no changes
-
2.25.0
2020-01-13
- 2.23.1 → 2.24.4 no changes
-
2.23.0
2019-08-16
SINOPSIS
gitrestore[<opciones>] [--source=<árbol>] [--staged] [--worktree] [--] <especificación-de-ruta>…gitrestore[<opciones>] [--source=<árbol>] [--staged] [--worktree]--pathspec-from-file=<fichero> [--pathspec-file-nul]gitrestore(-p|--patch) [<opciones>] [--source=<árbol>] [--staged] [--worktree] [--] [<especificación-de-ruta>…]
DESCRIPCIÓN
Restaura las rutas especificadas en el árbol de trabajo con algún contenido de una fuente de restauración. Si una ruta es rastreada pero no existe en la fuente de restauración será eliminada para coincidir con la fuente.
El comando tambien puede usarse para restaurar el contenido en el índice con --staged, o restaurar tanto el árbol de trabajo como el índice con --staged --worktree.
Predeterminadamente, si se da --staged, el contenido es restaurado desde HEAD, de lo contrario desde el índice. Use --source para restaurar desde una confirmación diferente.
Ver "Restablecer, restaurar y revertir" en git[1] para diferenciar los tres comandos.
OPCIONES
-
-s<árbol> -
--source=<árbol-ismo> -
Restaura los ficheros del árbol de trabajo con el contenido de un árbol dado. Es normal especificar el árbol fuente por su nombre de confirmación, rama o etiqueta asociada.
Si no se especifica, el contenido es restaurado desde
HEADsi se proporciona--staged, de lo contrario desde el índice.Como un caso especial, puedes usar
"<revisión-A>...<revisión-B>"como un atajo para la base de fusión de <revisión-A> y <revisión-B>_ si hay exactamente una base de fusión. Puedes dejar fuera a lo mucho una de <revisión-A> y _<revisión-B>, en cuyo caso se predetermina aHEAD. -
-p -
--patch -
Selecciona pedazos interactivamente en la diferencia entre la fuente y la ubicación de restauración. Ver la sección "Modo Interactivo" de git-add[1] para aprender cómo operar el modo
--patch. -
-U<n> -
--unified=<n> -
Genera diferencias con <n> líneas de contexto. Predeterminado a
diff.contexto a 3 si la opción de configuración no ha sido asignada. -
--inter-hunk-context=<n> -
Muestra el contexto entre pedazos de diferencia, hasta el <número> especificado de líneas, a modo de fusionar pedazos cercanos. Predeterminado a `diff.interHunkContext`o 0 si no se configura la opción.
-
-W -
--worktree -
-S -
--staged -
Especifica la ubicación de restauración. Si no se especifica ninguna opción, se restaura predeterminadamente el árbol de trabajo. Especificando
--stagedsolo restaura el índice. Especificando ambos restaura ambos. -
-q -
--quiet -
Suprime silenciosamente los mensajes de retroalimentación. Implica
--no-progress. -
--progress -
--no-progress -
El estado de progreso es reportado al flujo de error estándar predeterminadamente cuando esta vinculado a una terminal, a menos que se especifique
--quiet. Esta bandera habilita el reporte de progreso incluso si no esta vinculado a una terminal, independientemente de--quiet. -
--ours -
--theirs -
Cuando se restauran ficheros en el árbol de trabajo desde el índice, usa escenario #2 (
ours) o #3 (theirs) para rutas sin fusionar. Esta opción no puede usarse cuando se revisan rutas de un árbol-ismo (es decir, con la opción--source).Nota que durante
gitrebaseygitpull--rebase,oursytheirspueden aparecer intercambiados. Ver la explicación de las mismas opciones en git-checkout[1] para detalles. -
-m -
--merge -
Cuando se restauran ficheros en el árbol de trabajo desde el índice, recrea la fusión en conflicto en las rutas sin fusionar. Esta opción no puede usarse cuando se revisan rutas de un árbol-ismo. (es decir, con la opción
--source). -
--conflict=<estilo> -
Igual que la opción
--mergearriba, pero cambia la forma en que se presentan los pedazos en conflicto, anulando la variable de configuraciónmerge.conflictStyle. Los valores posibles sonmerge(predeterminado),diff3, yzdiff3. -
--ignore-unmerged -
Cuando se restauran ficheros en el árbol de trabajo desde el índice, no aborta la operación si hay entradas sin fusionar y no se ha especificado ninguna de
--ours,--theirs,--mergeo--conflict. Las rutas sin fusionar en el árbol de trabajo se dejan solas. -
--ignore-skip-worktree-bits -
En modo checkout escaso, lo predeterminado es solo actualizar las entradas que coincidan con <especificación-de-ruta> y los patrones de escasez en
$GIT_DIR/info/sparse-checkout. Esta opción ignora los patrones de escasez y restaura incondicionalmente cualquier fichero en <especificación-de-ruta>. -
--recurse-submodules -
--no-recurse-submodules -
Si <especifiación-de-ruta> incluye un submódulo activo y la ubicación de restauración incluye el árbol de trabajo, el submódulo se actualizará solo si se da esta opción, en cuyo caso su árbol de trabajo será restaurado a la confirmación registrada en el superproyecto, y cualquier modificación local será sobreescrita. Si no se usa nada (o
--no-recurse-submodules) los árboles de trabajo de los submódulos no serán actualizados. Tal y como git-checkout[1], esto separaráHEADdel submódulo. -
--overlay -
--no-overlay -
En modo overlay, nunca elimina ficheros al restaurar. En modo no-overlay, elimina ficheros rastreados que no aparezcan en el <árbol> de
--source=<árbol>, para hacerlos coincidir exactamente con <árbol>. El predeterminado es modo no-overlay. -
--pathspec-from-file=<fichero> -
La especificación de ruta se pasa en
_<fichero>_y no como argumento en la línea de comandos. Si_<fichero>_es exactamente-entonces se usa la entrada estándar. Los elementos de la especificación de ruta se separan por LF o CR/LF. Los elementos de la especificación de ruta pueden ser entrecomillados como se explica para la variable de configuracióncore.quotePath(ver git-config[1]). Ver también--pathspec-file-nuly--literal-pathspecsglobal. -
--pathspec-file-nul -
Sólo significativo con
--pathspec-from-file. Los elementos de la especificación de ruta se separan con el caracter NUL y todos los otros caracteres se toman literalmente (incluyendo saltos de línea y entrecomillados). -
-- -
No interpreta ningún argumento mas como opciones.
- <especificación-de-ruta>...
-
Limita las rutas afectadas por la operación.
Para mas detalles, ver pathspec en gitglossary[7].
EJEMPLOS
La secuencia siguiente cambia a la rama master, revierte Makefile dos versiones atrás, elimina hello.c por error, y lo obtiene de vuelta desde el índice.
$ git switch master $ git restore --source master~2 Makefile (1) $ rm -f hello.c $ git restore hello.c (2)
-
saca un fichero de otra confirmación
-
restaura
hola.cdesde el índice
Si quieres restablecer todos los ficheros de código C para que coincidan con la versión en el índice, puedes hacer
$ git restore '*.c'
Observa las comillas que rodean a *.c. El fichero hello.c también será restaurado, incluso si ya no esta en el árbol de trabajo, porque se usa glob para encontrar las entradas en el índice (mas no en el árbol de trabajo donde esta situado el intérprete de comandos).
Para restaurar todos los ficheros en el directorio actual
$ git restore .
o para restaurar todos los ficheros del árbol de trabajo con las especificación de ruta mágica top (ver gitglossary[7])
$ git restore :/
Para restaurar un fichero en el índice para que coincida con la versión en HEAD(lo mismo que usar git-reset[1])
$ git restore --staged hello.c
o puedes restaurar ambos, el índice y el árbol de trabajo (esto es lo mismo que usar git-checkout[1])
$ git restore --source=HEAD --staged --worktree hello.c
o la forma corta, la cual es más práctica pero menos legible:
$ git restore -s@ -SW hello.c
GIT
Parte de la suite de git[1]