Сколько коммитов вам нужно вернуться и выбрать? Если это только один, возможно, возьмите ветку непосредственно перед ним, проверьте файл, который вы зафиксировали, а затем используйте, git add -pчтобы добавить его так, как вы этого хотели. Затем вы можете вернуться туда, где вы были, и извлечь файл из своей временной ветки.
то есть:
git checkout -b temp troublesome-commit^
git checkout troublesome-commit -- path/to/file
git add -p path/to/file
git commit -c troublesome-commit
git checkout @{-1}
git checkout temp -- path/to/file
git commit path/to/file
git branch -D temp
Другие альтернативы включают возврат и редактирование фиксации с помощью git rebase -i(отметка фиксации как edit, затем выполнение git reset HEAD^и повторение фиксации при возврате в оболочку).
Если изменения, которые вам нужно выбрать, распределены по серии коммитов, может быть лучше извлечь их как патчи (или патч, покрывающий все из них) и вручную отредактировать патч, удалив изменения, которые вы хотите сохранить, и подача остатка в git apply --reverse.