Wie viele Commits müssen Sie zurückgehen und auswählen? Wenn es nur eine ist, nehmen Sie vielleicht einen Zweig direkt davor, checken Sie die Datei aus, die Sie festgeschrieben haben, und git add -pfügen Sie sie dann hinzu, wie Sie es wollten. Dann können Sie zu Ihrem ursprünglichen Standort zurückkehren und die Datei in Ihrem temporären Zweig auschecken.
das ist:
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
Andere Alternativen sind das Zurückgehen und Bearbeiten des Commits mit git rebase -i(Markieren des Commits als edit, dann Ausführen eines git reset HEAD^und Wiederholen des Commits, wenn es wieder in die Shell eingefügt wird).
Wenn sich die Änderungen, aus denen Sie auswählen müssen, auf eine Reihe von Commits verteilen, ist es möglicherweise besser, sie als Patches (oder einen Patch, der alle abdeckt) zu extrahieren und den Patch von Hand zu bearbeiten, wobei Sie die Änderungen entfernen, die Sie behalten möchten. und Einspeisen des Restes in git apply --reverse.