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 statusmuestra 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 --hardrestablece 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 -dpara 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
-xsi desea eliminar sus archivos .gitignored y volver a un estado impecable.-na prueba se eliminaría primero. combinarlos todos en un argumento:-dfngit clean -qfdxaquí. Elimina todo y hazlo en silencio.-d -fse pueden decalred dos veces-dffpara-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 -direalizará 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
-xsimilares si hubiera clonado el repositorio. Si eso es lo que quieres, es perfecto. Si solo desea eliminar archivos no rastreados , eliminar la-xopción funciona bien.gpristineEnfoque 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 wipepor ejemplo:fuente
El comando que estás buscando es
git cleanfuente
git-cleanUtilícelo para eliminar archivos no rastreados en el árbol de trabajo. Las siguientes son algunas opciones (en resumen) que se pueden usar con elgit cleancomando.-dutilizar cuando no se especifica ninguna ruta. Entonces git recurse en directorios no rastreados, elimínelos.-f/--forcePara eliminar archivos anidados no rastreados.-i/--interactiveMuestra lo que se haría y limpia los archivos de forma interactiva.-n/--dry-runMuestra lo que sucederá sin quitar nada.-xignorar 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