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

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.