git reset¶
Jetzt wollen wir (obere) Commits wieder aus dem Git entfernen / löschen.
Hinweis
Die folgenden Aktionen gehen davon aus, dass die fraglichen Commits
noch nicht auf anderen Repositories veröffentlich worden sind
(siehe git push)!
Das Löschen von Commits aus der Mitte geschieht mit git rebase.
Wir arbeiten weiterhin mit Referenzen und können die obersten Commits in einem Branch löschen lassen. Dabei nutzt man gerne die symbolische HEAD Referenz.
Auch für diesen Befehl gibt es den interaktiven Patchmodus mit Option --patch.
git add | commit | reset (gitbu.ch)¶
Hinweis: Darstellung aus gitbu.ch (siehe auch Literatur).
Parameter mixed
Mit git reset: Neues/Unterschiede aus dem Repository in den
Index übertragen. Genauer stellt die Grafik und der
Kurzaufruf git reset den Standardaufruf git reset --mixed HEAD dar!
Im Grunde wird die Stage (der Index) auf den Zustand des letzten Commits gesetzt!
Parameter soft
Wenn wir den letzten Commit entfernen wollen: git reset --soft HEAD~1
(oder HEAD^ s. o.)
Dabei werden die Dateien im Working Tree nicht angefasst.
Parameter hard
Und git reset --hard schlägt dann bis den Working Tree durch
und ändert alle Dateinhalte auf die Infos im entsprechenden Projektzustand.