Cómo descartar cambios locales y eliminar archivos sin seguimiento en Git
Tres comandos diferentes eliminan tres tipos diferentes de cambios. A continuación se explica cómo desechar ediciones, cambios preparados y archivos nuevos, un archivo o todos, y cómo obtener una vista previa del mismo primero para que no quede nada importante con ellos.
Escrito por Kodmora
La casa de software detrás de GitTree
- Deshacer y recuperar
- Preparación
En esta página
Para descartar cambios en los archivos rastreados, ejecute `git restore .` Para eliminar archivos y carpetas sin seguimiento, ejecute `git clean -fd`. Para volver completamente a la última confirmación, ejecute `git reset --hard` seguido de `git clean -fd`. Git no puede recuperar estos cambios después, así que obtenga una vista previa primero con git status y git clean -nd.
¿Qué comando descarta qué?
| lo que quieres que se vaya | Comando |
|---|---|
| Edita un archivo rastreado | git restore path/to/file |
| Ediciones a todos los archivos rastreados | git restore . |
| Cambios por etapas, manteniendo las ediciones. | git restore --staged . |
| Cambios y ediciones por etapas | git restore --staged --worktree . |
| Archivos nuevos que Git no rastrea | git clean -f |
| Nuevos archivos y carpetas | git clean -fd |
| Todo desde el último commit. | git reset --hard luego git clean -fd |
¿Cómo descarto los cambios en un archivo?
git restore src/search.ts
# only some of the changes, hunk by hunk
git restore -p src/search.ts
# the same file as it was on another branch
git restore --source=main src/search.tsLas guías más antiguas utilizan git checkout -- src/search.ts. Todavía funciona, pero git restore (Git 2.23 o posterior) solo hace este trabajo, por lo que es más difícil usarlo incorrectamente.
¿Cómo descarto todos los cambios locales?
# tracked files, staged or not
git reset --hard
# then untracked files and folders
git clean -fd
# confirm
git status
# nothing to commit, working tree cleangit reset --hard sin confirmación mantiene la rama donde está y solo borra archivos. Explicación del reinicio de Git cubre lo que hace cuando nombras una confirmación.
¿Cómo elimino un archivo sin perderlo?
git restore --staged src/search.tsEl archivo sale del área de preparación y sus ediciones permanecen en la carpeta de trabajo. No se elimina nada.
¿Cómo elimino archivos sin seguimiento con git clean?
Siempre obtenga una vista previa primero. -n es un ensayo, que solo enumera lo que funcionaría:
# preview files and folders
git clean -nd
# delete them
git clean -fd
# ask about each one
git clean -id| Bandera | Significado |
|---|---|
-n | Ejecución en seco: solo listar, no eliminar nada |
-f | Fuerza: necesaria para eliminar cualquier cosa |
-d | Incluir carpetas sin seguimiento |
-i | Interactivo: elige lo que va |
-x | Elimine también archivos ignorados, como .env y node_modules |
-X | Eliminar solo archivos ignorados |
¿Puedo recuperar cambios descartados?
- Trabajo confirmado: sí, hasta
git reflog. - Trabajo escondido: sí. A menudo incluso se puede encontrar un alijo caído, como se muestra en recuperar un alijo caído.
- Preparado pero nunca confirmado: a veces, con
git fsck --lost-found. - Nunca preparado: no. Es posible que el historial local de su editor aún lo contenga.
Si un archivo fue eliminado y confirmado, cómo restaurar un archivo eliminado tiene los pasos.
Cómo descartar cambios en GitTree
Elige qué tirar
Pase el cursor sobre un archivo en el panel de cambios y seleccione Descartar cambios en el archivo..., o haga clic con el botón derecho en varios archivos para Descartar cambios.... En una diferencia, utilice Descartar trozo o Descartar líneas.
Limpiar o borrar todo
Ejecute Limpiar archivos sin seguimiento... o Descartar todos los cambios... desde la paleta de comandos.
Leer la confirmación
El cuadro de diálogo nombra lo que sucede y Cancelar es el valor predeterminado. GitTree guarda primero una instantánea de recuperación, para que Deshacer pueda recuperarla.

Consulte descartar cambios y limpiar archivos sin seguimiento para cada opción, y ignorar y limpiar lección para practicar.
Preguntas frecuentes
¿Cuál es la diferencia entre git restablecimiento y git checkout?
git checkout cambia de rama y restaura archivos. Git 2.23 divide esos trabajos en git switch y git restore, que son más claros. La forma antigua todavía funciona.
¿Git reset --hard elimina archivos sin seguimiento?
No. Restablece únicamente los archivos rastreados. Los archivos nuevos permanecen hasta que ejecutes git clean -fd.
¿Por qué git clean dice "negarse a limpiar"?
Git requiere -f de forma predeterminada (clean.requireForce) para que un error tipográfico no pueda eliminar archivos. Agregue -f una vez que el ensayo se vea bien.
¿Git clean elimina archivos ignorados?
No, a menos que agregues -x o -X. Un git clean -fd simple deja todo en .gitignore en paz.
¿Cómo conservo los cambios pero obtengo una carpeta limpia?
Ejecute git stash -u. Guarda los cambios con y sin seguimiento y borra la carpeta. Vuelve a traerlos más tarde con git stash pop, como explica la guía de almacenamiento.
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.
