Перечитывая вопрос, звучит так, как будто вы хотите отменить изменения, которые есть в вашем рабочем дереве, а не изменения, которые были ранее зафиксированы, но некоторые другие ответы заставляют это звучать так, будто мое чтение может быть неправильным. Вы можете уточнить?
Если изменения находятся только в вашей рабочей копии, то самый простой способ сделать это - внести изменения, которые вы хотите сохранить:
git add -i <file>
Затем отбросьте изменения, которые вы не хотите сохранять, проверив версию индекса:
git checkout -- <file>
Затем отмените внесение изменений, если вы не хотите, чтобы они были поставлены:
git reset -- <file>
Этот рецепт отменяет только выбранные изменения в файле (или файлах, которые вы укажете) и не создает никаких временных фиксаций, которые затем необходимо отменить.
Если вы хотите выборочно применить только некоторые изменения, внесенные в предыдущих фиксациях, вы можете сначала сбросить файл до предыдущего зафиксированного состояния:
git reset <commit_before_first_unwanted_change> -- <file>
Затем вы можете следовать предыдущему рецепту, git add -i <file>
чтобы внести те изменения, которые вы хотите сохранить, git checkout -- <file>
отбросить нежелательные изменения и git reset -- <file>
«удалить их».