Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Änderungen in Git rückgängig machen

Nach dieser Lektion: Ich kann einen Fehler rückgängig machen, ohne Arbeit zu verlieren.

Lektion, 55 Min.14 BefehleGit-und-Gitea-Lab: clone, commit und push auf einem eigenen Git-Server lernen

Wie macht man in Git einen Fehler rückgängig?

In Git machen Sie einen Fehler mit restore, revert oder reset rückgängig, je nachdem, ob die Änderung ungespeichert, gespeichert oder schon geteilt ist. Wer den richtigen Weg wählt, verliert keine Arbeit.

In einer Rechnung steht plötzlich 1200 Euro statt 120 Euro. Das fällt erst nach dem Commit auf, und die Kollegin hat ihn vielleicht schon geholt.

Am Ende dieser Lektion

Notiz

Ich kann einen Fehler rückgängig machen, ohne Arbeit zu verlieren.

Schlüsselbegriffe

BegriffWas er bedeutet
restoreeine Datei auf den Stand des letzten Commits zurücksetzen
reverteinen neuen Commit machen, der einen früheren aufhebt
resetden Branch auf einen früheren Commit zurückstellen
reflogdie Liste, wohin HEAD zuletzt zeigte
Geteilter Commitein Commit, den andere schon vom Remote geholt haben

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Eine ungespeicherte Änderung nehmen Sie mit restore zurück

Der einfachste Fall: Sie haben eine Datei geändert, aber noch nicht committet. git restore datei setzt sie auf den Stand des letzten Commits zurück. Die Änderung ist danach weg.

Sie legen zuerst ein Repository rechnung mit einem Commit an. Dann richten Sie absichtlich einen Fehler an und nehmen ihn zurück.

Ein Repository namens rechnung anlegen

Befehl
git init -b main rechnung

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ihren Namen für diesen Ordner setzen

Befehl
git -C rechnung config user.name "Studierende"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ihre Adresse für diesen Ordner setzen

Befehl
git -C rechnung config user.email "[email protected]"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Einen Betrag von 120 Euro schreiben

Befehl
printf 'Betrag 120\n' > rechnung/betrag.txt

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Datei vormerken

Befehl
git -C rechnung add betrag.txt

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Den ersten Commit speichern

Befehl
git -C rechnung commit -m "Rechnung angelegt"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Den Betrag aus Versehen auf 1200 setzen

Befehl
sed -i 's/Betrag 120/Betrag 1200/' rechnung/betrag.txt

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Den Status kurz ansehen

Befehl
git -C rechnung status --short

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Datei auf den letzten Commit zurücksetzen

Befehl
git -C rechnung restore betrag.txt

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Datei lesen

Befehl
cat rechnung/betrag.txt

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Einen geteilten Commit heben Sie mit revert auf

git revert schreibt keinen alten Commit um. Es macht einen neuen Commit, der die Wirkung eines früheren aufhebt. Der Verlauf bleibt wahr, und wer den alten Commit schon geholt hat, bekommt den neuen einfach dazu.

Deshalb ist revert der sichere Weg für alles, was andere schon haben. Sie setzen den Fehler jetzt in einen Commit und heben ihn auf.

Den falschen Betrag wieder eintragen

Befehl
sed -i 's/Betrag 120/Betrag 1200/' rechnung/betrag.txt

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Den Fehler als Commit speichern

Befehl
git -C rechnung commit -am "Betrag falsch geaendert"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Den letzten Commit mit einem neuen aufheben

Befehl
git -C rechnung revert --no-edit HEAD

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Die Nachrichten des Verlaufs lesen

Befehl
git -C rechnung --no-pager log --format=%s

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Reset stellt zurück, reflog findet Commits

git reset schiebt den Branch auf einen früheren Commit. Mit --soft bleiben Ihre Änderungen vorgemerkt, mit --hard werden sie gelöscht. Nutzen Sie reset nur für Commits, die noch niemand hat.

Ging doch ein Commit verloren, hilft git reflog. Es listet auf, wohin HEAD zuletzt zeigte. Von dort bringt Sie ein Wechsel oder ein neuer Branch zum Commit zurück.

Welcher Weg passt zu welcher Lage?

LageBefehlWirkung
Datei geändert, nicht committetgit restore dateiDatei wie im letzten Commit
Commit gemacht, noch nicht geteiltgit reset --soft HEAD~1Commit weg, Änderung bleibt vorgemerkt
Commit schon geteiltgit revert HEADNeuer Commit hebt ihn auf
Commit scheint verlorengit reflogZeigt, wohin HEAD zeigte

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein häufiger Irrtum

Warnung

Viele glauben, reset --hard sei der normale Weg zum Zurücknehmen. Es löscht ungespeicherte Änderungen für immer. Nutzen Sie es nur, wenn Sie sicher sind, dass nichts darin Ihnen fehlen wird, und nie für Commits, die andere schon haben.

Über dieses Lab und seinen Quellcode: Git-und-Gitea-Lab: clone, commit und push auf einem eigenen Git-Server lernen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.