Cuando corro git reset --hard HEAD
, se supone que se restablece a una versión prístina de lo que sacaste, según tengo entendido. Desafortunadamente, deja archivos por ahí, ya que git status
muestra una gran lista de archivos sin seguimiento.
¿Cómo le dices a git "Solo tráelo EXACTAMENTE a lo que había en el último tirón, nada más, nada menos"?
git reset --hard
restablece su índice y revierte los archivos rastreados a su estado como están en HEAD. Deja solo los archivos sin seguimiento.Respuestas:
Debe utilizar
git clean -f -d
para deshacerse de los archivos y directorios no rastreados en su copia de trabajo.Si necesita restablecer todo el repositorio a maestro, incluidos todos los submódulos git, ejecute este script:
fuente
-x
si desea eliminar sus archivos .gitignored y volver a un estado impecable.-n
a prueba se eliminaría primero. combinarlos todos en un argumento:-dfn
git clean -qfdx
aquí. Elimina todo y hazlo en silencio.-d -f
se pueden decalred dos veces-dff
para-d -f -f
, esto eliminará todos los directorios sin seguimiento sin seguimiento, incluidos los directorios protegidos.Si tiene archivos que aún desea conservar:
git clean -di
realizará una limpieza interactiva que le permite eliminar solo los archivos / directorios que ya no desea.fuente
o, zsh proporciona un alias 'gpristino':
Lo cual es realmente útil.
Si trabaja en un repositorio bifurcado, asegúrese de buscar y restablecer desde el repositorio / rama correcto, por ejemplo:
fuente
-x
similares si hubiera clonado el repositorio. Si eso es lo que quieres, es perfecto. Si solo desea eliminar archivos no rastreados , eliminar la-x
opción funciona bien.gpristine
Enfoque interactivo del usuario:
-i para interactivo
-f para forzar
-d para directorio
-x para archivos ignorados (agregue si es necesario)
Nota: Agregue -n o --dry-run para verificar lo que hará.
fuente
Puedes usar
git stash
. Tienes que especificar--include-untracked
, de lo contrario terminarás con el problema original.Luego simplemente suelta la última entrada en el alijo
Puede hacer un alias práctico y elegante para eso, y llamarlo,
git wipe
por ejemplo:fuente
El comando que estás buscando es
git clean
fuente
git-clean
Utilícelo para eliminar archivos no rastreados en el árbol de trabajo. Las siguientes son algunas opciones (en resumen) que se pueden usar con elgit clean
comando.-d
utilizar cuando no se especifica ninguna ruta. Entonces git recurse en directorios no rastreados, elimínelos.-f/--force
Para eliminar archivos anidados no rastreados.-i/--interactive
Muestra lo que se haría y limpia los archivos de forma interactiva.-n/--dry-run
Muestra lo que sucederá sin quitar nada.-x
ignorar archivosejemplo:
git clean -f -d
-> Eliminar todos los archivos no rastreados en el directorio actual cualquier subdirectorio.fuente
Es posible que haya hecho un restablecimiento parcial en algún momento, puede resolver este problema haciendo
fuente