Одним сложным способом было бы сначала зафиксировать все:
git add -u
git commit // creates commit with sha-1 A
Сброс обратно к исходной фиксации, но извлечение the_one_file из новой фиксации:
git reset --hard HEAD^
git checkout A path/to/the_one_file
Теперь вы можете спрятать the_one_file:
git stash
Очистите, сохранив зафиксированный контент в вашей файловой системе и вернув исходный коммит:
git reset --hard A
git reset --soft HEAD^
Да, немного неловко ...