Al volver a leer la pregunta, parece que desea revertir los cambios que están en su árbol de trabajo y no los cambios que se han confirmado anteriormente, pero algunas de las otras respuestas hacen que parezca que mi lectura puede ser incorrecta. ¿Puedes aclarar?
Si los cambios están solo en su copia de trabajo, la forma más fácil de hacerlo es organizar los cambios que desea conservar:
git add -i <file>
Luego, descarte los cambios que no desea conservar revisando la versión de índice:
git checkout -- <file>
Luego, desarme los cambios si aún no los desea:
git reset -- <file>
Esta receta solo revierte los cambios seleccionados en el archivo (o los archivos que especifique) y no crea ninguna confirmación temporal que luego deba revertirse.
Si desea aplicar selectivamente solo algunos de los cambios realizados en confirmaciones anteriores, primero puede restablecer un archivo a un estado confirmado anterior:
git reset <commit_before_first_unwanted_change> -- <file>
A continuación, puede seguir la receta anterior git add -i <file>
para organizar los cambios que desea conservar, git checkout -- <file>
descartar los cambios no deseados y git reset -- <file>
'desestabilizar' los cambios.