git reset – ignorando files específicos sin seguimiento

A menudo, ejecuto git reset --hard junto con git clean -f para limpiar mi twig de modificaciones y crear files. Este command borra todos los files sin seguimiento, lo cual está bien para mí, pero hay pocos files en los que me quiero quedar, como .project o .settings (para eclipse)

Estos files no son parte del repository y se declaran en el file .gitignore. ¿Hay alguna manera de save estos files al emitir los commands anteriores, o tal vez debería usar diferentes commands para eso?

Tenga en count que git clean -f solo debe eliminar los files desconocidos para git, no los files ignorados.

Solo git clean -f -x eliminaría los files ignorados.

(en todos los casos, un git clean -n -... es mejor, para tener una vista previa de lo que se eliminaría)

La ventaja de git reset sobre git clean es principalmente mover HEAD y restablecer el índice así como también el tree de trabajo.
git clean solo se trata del tree de trabajo.

git reset no tocará los files ignorados. Funciona con HEAD puntero e índice, principalmente. Pero git clean es el mal:

Limpia el tree de trabajo mediante la eliminación recursiva de files que no están bajo control de versiones, comenzando desde el directory actual.

Entonces la respuesta es: no uses git clean .