¿Cómo descarto los cambios en mi copia de trabajo que no están en el índice?
¿Cómo descarto los cambios en mi copia de trabajo que no están en el índice?
Otra forma más rápida es:
git stash save --keep-index
Incluir --include-untracked
si quieres ser minucioso al respecto.
Después de eso, puedes dejar ese alijo con un git stash drop
comando si quieres.
Para todos los archivos no ejecutados, use:
git checkout -- .
Para un uso de archivo específico:
git checkout path/to/file/to/revert
Asegúrese de incluir el período al final.
Parece que la solución completa es:
git clean -df
git checkout -- .
git clean
elimina todos los archivos sin seguimiento (advertencia: mientras que no eliminará los archivos ignorados mencionados directamente en .gitignore, puede eliminar archivos ignorados que residen en carpetas) y git checkout
borra todos los cambios no registrados.
Esto verifica el índice actual para el directorio actual, tirando hacia abajo todos los cambios en los archivos del directorio actual.
git checkout .
o esto que verifica todos los archivos del índice, sobrescribiendo los archivos del árbol de trabajo.
git checkout-index -a -f
git clean -df
Limpia el árbol de trabajo mediante la eliminación recursiva de archivos que no están bajo control de versiones, comenzando desde el directorio actual.
-d
: Eliminar directorios no rastreados además de archivos no rastreados
-f
: Fuerza (puede no ser necesario dependiendo de clean.requireForce
ajuste)
correr git help clean
ver el manual
Mi favorito es
git checkout -p
Eso le permite revertir trozos de manera selectiva.
Ver también:
git add -p
Como ninguna respuesta sugiere la combinación de opciones exacta que uso, aquí está:
git clean -dfx
git checkout .
Este es el texto de ayuda en línea para el usado git clean
opciones:
-d
Elimine los directorios sin seguimiento además de los archivos sin seguimiento. Si un directorio no rastreado es administrado por un repositorio de Git diferente, no se elimina de forma predeterminada. Utilizar -f
opción dos veces si realmente desea eliminar dicho directorio.
-f
Si la variable de configuración de Git clean.requireForce
no está configurado para false
, Git Clean se negará a eliminar archivos o directorios a menos que se -f
, -n
, o -i
. Git se negará a eliminar directorios dentro del .git
subdirectorio o archivo, a menos que un segundo -f
es dado.
-x
No use las reglas de ignorar de .gitignore
(por directorio) y $GIT_DIR/info/exclude
, pero aún usan las reglas de ignorar que se dan con -e
opciones. Esto permite eliminar todos los archivos sin seguimiento, incluidos los productos de compilación. Esto se puede usar (posiblemente junto con git reset
) para crear un directorio de trabajo prístino para probar una compilación limpia.
También, git checkout .
debe hacerse en la raíz del repositorio.