Relendo a pergunta, parece que você deseja reverter as alterações que estão na sua árvore de trabalho e não as que foram confirmadas anteriormente, mas algumas das outras respostas fazem parecer que minha leitura pode estar errada. Você pode esclarecer?
Se as alterações estiverem apenas na sua cópia de trabalho, a maneira mais fácil de fazer isso é preparar as alterações com as quais você deseja manter:
git add -i <file>
Em seguida, jogue fora as alterações que você não deseja manter, verificando a versão do índice:
git checkout -- <file>
Em seguida, descompacte as alterações se você ainda não as deseja:
git reset -- <file>
Esta receita reverte apenas as alterações selecionadas no arquivo (ou arquivos que você especificar) e não cria nenhuma confirmação temporária que precisa ser revertida.
Se você deseja aplicar seletivamente apenas algumas das alterações feitas nas confirmações anteriores, poderá redefinir um arquivo para um estado confirmado anteriormente primeiro:
git reset <commit_before_first_unwanted_change> -- <file>
Em seguida, você pode seguir a receita anterior para preparar git add -i <file>
as alterações que deseja manter, git checkout -- <file>
jogar fora as alterações indesejadas e git reset -- <file>
'desestabilizar' as alterações.