Fehler rückgängig machen: restore, reset, revert – richtig und gefährlich
Eines der am häufigsten nachgefragten Themen in Vorstellungsgesprächen und im Arbeitsalltag ist das Rückgängigmachen bereits getätigter Aktionen. Wir beleuchten drei Werkzeuge mit unterschiedlichen 'Rückgängig-Tiefen' und konzentrieren uns auf das Wesentliche: Wir zeigen konkrete Szenarien, in denen reset --hard die Teamarbeit zerstört und revert eine sichere Alternative darstellt. Gute und schlechte Lösungsansätze – mit echten Konsequenzen.
- Sie werden in der Lage sein, Änderungen in jeder Phase sicher rückgängig zu machen: im Arbeitsverzeichnis, im Index und in der Commit-Historie.
- Sie verstehen den grundlegenden Unterschied zwischen reset und revert und wissen, in welchen Situationen welches Werkzeug angemessen ist.
- Sie lernen, typische Fehler zu vermeiden, die Anfänger beim Rückgängigmachen von Änderungen in einem gemeinsamen Repository begehen.
จุดเริ่มต้นของบทเรียน
Git restore: Die Rückgängig-Taste für Dateien
- Git restore — Macht nicht commitete Änderungen rückgängig
- Funktioniert wie die 'Rückgängig'-Taste in einem Texteditor
- Sicher — verändert die Commit-Historie nicht
- Stellt Dateien zum letzten gespeicherten Zustand wieder her
Stellen Sie sich vor, Sie haben versehentlich eine Datei mit einem Fehler gespeichert und möchten alles wiederherstellen. Git restore funktioniert wie eine magische Rückgängig-Taste — es bringt Dateien zum letzten commiteten Zustand zurück. Im Gegensatz zu anderen Rückgängig-Befehlen arbeitet restore nur mit nicht commiteten Änderungen und ist für die Projektgeschichte völlig unbedenklich. Dies ist das erste Werkzeug, zu dem Sie greifen sollten, wenn Sie versehentliche Änderungen schnell korrigieren möchten, ohne die Änderungshistorie zu gefährden.
Änderungen im Arbeitsverzeichnis rückgängig machen
- git restore datei.txt — Stellt die Datei zum letzten Commit wieder her
- Macht alle Änderungen im Arbeitsverzeichnis rückgängig
- Sicher — Änderungen können über den Editor wiederhergestellt werden
- Überprüfen Sie den Status mit git status vor der Wiederherstellung
Angenommen, Sie haben eine halbe Stunde lang an einer Konfigurationsdatei gearbeitet und merken dann, dass Sie auf dem Holzweg sind. Anstatt jede Änderung manuell rückgängig zu machen, führen Sie einfach git restore config.yml aus. Die Datei wird sofort zum Zustand des letzten Commits zurückkehren. Das ist, als ob Sie die Datei einfach ohne Speichern schließen würden, aber mit der Garantie, zur letzten funktionierenden Version zurückzukehren.
# Demonstration der Dateiwiederherstellung
$ echo "Fehlerhafte Änderungen" > main.py
$ git status
$ git restore main.py
$ cat main.py
$ git status
Datei aus dem Index entfernen
- git restore --staged datei.txt — Datei aus dem Index entfernen
- Behält Änderungen im Arbeitsverzeichnis
- Achtung: Ohne --staged gehen Änderungen verloren
- Immer git status vor der Ausführung prüfen
Ein häufiger Fehler ist das versehentliche Hinzufügen einer falschen Datei zum Index. Stellen Sie sich vor, Sie haben git add . ausgeführt und dabei eine temporäre Konfigurationsdatei erfasst. Mit dem Befehl git restore mit dem Flag staged und dem Dateinamen einstellungen.tmp entfernen Sie sie sauber aus dem Index, während alle Änderungen im Arbeitsverzeichnis erhalten bleiben. Ohne das Flag staged würden Sie Ihre Arbeit verlieren. Prüfen Sie daher immer den Status mit git status, bevor Sie restore ausführen. Jetzt wissen Sie, wie Sie Änderungen vor dem Commit rückgängig machen. Aber was, wenn der Fehler bereits in der Historie ist? Hier kommt git reset ins Spiel.
# Versehentlich Datei zum Index hinzugefügt
$ git add konfig.tmp
$ git status
# Aus Index entfernen, Änderungen behalten
$ git restore --staged konfig.tmp
$ git status
# Prüfen, ob Datei im Arbeitsverzeichnis verblieben ist
$ ls -la konfig.tmp
บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก
ฉบับเต็มมีสไลด์เพิ่มอีก 24 สไลด์
วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก
เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิกเนื้อหาบทเรียน
- Git restore: Die Rückgängig-Taste für Dateien
- Änderungen im Arbeitsverzeichnis rückgängig machen
- Datei aus dem Index entfernen
- Git reset: Wie das Zurückspulen der Historie funktioniert
- Sicheres reset --soft: Änderungen im Index
- Standard reset --mixed: Änderungen im Arbeitsverzeichnis
- Gefährlicher reset --hard: Endgültiges Löschen
- Reset: Drei Modi, ein Befehl
- git reset --soft: Geschichte sicher umschreiben
- Wann --mixed und --hard verwenden?
- Checkliste: Welchen reset wählen?
- Warum kann man Fehler nicht einfach löschen?
- Wie funktioniert git revert in der Praxis?
- Mehrere Commits auf einmal rückgängig machen
- Reset: Geschichte lokal umschreiben
- Revert: Änderungen sicher rückgängig machen
- Was bei Push passiert: reset vs revert
- Warum reset --hard gefährlich ist
- Beispiel für Datenverlust
- Daten wiederherstellen
- Gefahren des Zurücksetzens in gemeinsam genutzten Branches
- Sicheres Zurücksetzen mit revert
- Korrekte Vorgehensweise
- Wann man was verwendet: restore, reset oder revert
- Regeln für den Umgang mit persönlicher und gemeinsamer Historie
- Schritt-für-Schritt-Anleitung bei Fehlern
- Zusammenfassung und Aufgabe: Meister der Rückgängig-Machen
บทความเกี่ยวกับบทเรียนนี้
- คำสั่ง Git: ชีตสรุปพร้อมตัวอย่างสำหรับใช้ทุกวัน
- git checkout, switch และ restore: ควรใช้อะไรเมื่อไร
- git reset กับ git revert: วิธียกเลิกคอมมิตโดยไม่ทำลายประวัติของทีม
- git reflog: วิธีกู้คอมมิตและบรานช์ที่หายไป
- Git และ GitHub: ต่างกันอย่างไร และเชื่อมโยงกันอย่างไร
บทเรียนทั้งหมดในคอร์สนี้
- Einführung: Git vom Anfänger zum sicheren Entwickler
- Wofür braucht man eigentlich Git – und warum bekommt man ohne es keinen Job?
- Installation und Einrichtung: Git für den ersten Start vorbereiten
- Erstes Repository: init, add, commit und die Magie des Index
- Versionsgeschichte verstehen: Log, Diff, Show und Navigation durch die Vergangenheit
- Branches: Die parallele Realität Ihres Codes
- Fehler rückgängig machen: restore, reset, revert – richtig und gefährlich
- GitHub und Remote-Repositories: Ihr Code in der Cloud
- Teamarbeit: Forks, Feature-Branches und Pull-Requests
- Merge-Konflikte: Keine Panik – Verstehen und Lösen
- Git-Prozesse in realen Teams: Welchen Workflow soll man wählen?
- Fortgeschrittene Tools: Rebase, Stash, Cherry-Pick und Tags
- Abschlussprojekt: Simulation einer echten Team-Entwicklung