Z ilu zatwierdzeń musisz wrócić i wybrać spośród nich? Jeśli to tylko jeden, może weź gałąź tuż przed nim, wyewidencjonuj zatwierdzony plik, a następnie użyj go, git add -paby dodać go tak, jak chciałeś. Następnie możesz wrócić do miejsca, w którym byłeś i pobrać plik z gałęzi tymczasowej.
to jest:
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
Inne alternatywy obejmują cofnięcie się i edycję zatwierdzenia za pomocą git rebase -i(oznaczenie zatwierdzenia jako edit, a następnie wykonanie a git reset HEAD^i ponowne wykonanie zatwierdzenia po wrzuceniu z powrotem do powłoki).
Jeśli zmiany, z których musisz dokonać wyboru, są rozłożone na serię zatwierdzeń, może być lepiej wyodrębnić je jako łaty (lub łatkę obejmującą wszystkie z nich) i ręcznie edytować łatkę, usuwając zmiany, które chcesz zachować, i wprowadzanie pozostałości do git apply --reverse.