Stash cambia a archivos específicos

Tengo un gran proyecto git que, estúpidamente, importé para eclipse y ejecuté un autoformato. Ahora, cada archivo en el proyecto se muestra como modificado. En lugar de enviar mis archivos formateados, preferiría revertir todos los archivos a los que solo he sido formateado y no he tenido otros cambios. Por ejemplo:

$ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#   (commit or discard the untracked or modified content in submodules)

#     modified: dir/file1.cpp
#     modified: dir/file1.h
#     modified: dir/file2.cpp
#     modified: dir/file2.h
#     modified: dir/file3.cpp
#     modified: dir/file3.h
#     modified: dir/file4.cpp
#     modified: dir/file4.h

Yo sé esofile2.cpp, file2.hyfile3.cpp se han modificado con el contenido (es decir, no solo el formato). Quiero guardar los cambios en estos tres archivos y luego revisar una revisión anterior, para poder volver a aplicar los cambios a estos archivos después. Preferiría evitar algo como:

$ cp file2.cpp ~/tmp
$ git checkout blahblahblah
$ cp ~/tmp/file2.cpp .

Si hay una forma obvia de hacer esto que no implique el ocultamiento, hágamelo saber. lo que sea que haga el trabajo

Respuestas a la pregunta(5)

Su respuesta a la pregunta