Como se menciona en esta publicación
Para decirlo de otra manera, si tiene lo siguiente en su .gitignore:
/my-ignonetworking-directory/*
Entonces estás jodido: después de save un git, -u, my-ignonetworking-file.txt desaparecerá (y lo siento, tampoco está en el alijo que acabas de crear). Divide los packages de recuperación y espera lo mejor. Alternativamente, si tiene lo siguiente en su .gitignore:
/my-ignonetworking-directory
Entonces estás dorado, no te preocupes, relájate, relájate, my-ignonetworking-file.txt se mantendrá exactamente donde estaba antes del escondite de git, excepto -u.
¿Por qué esta diferencia? También me pregunto si no se eliminarán files si en mi file .gitignore
tengo /my-ignonetworking-directory/
(con barra diagonal)?
Los resultados de ambos ejemplos serán los mismos, los files ignorados desaparecerán. Por supuesto, hay una solución para que se describa en la documentation:
Si se utiliza la opción –include-untracked, todos los files sin seguimiento también se guardan y se limpian con git clean, dejando el directory de trabajo en un estado muy limpio. Si se utiliza la opción –todos, los files ignorados se esconden y se limpian además de los files sin seguimiento.
Git internamente llama a git clean -d para poner el directory de trabajo en un estado muy limpio .
El command que quieres es:
git stash --include-untracked --all