Gelöschte Dateien vor dem Commit in Git wiederherstellen
-
Stellen Sie gelöschte Dateien vor dem Commit mithilfe der Befehle
reset
undcheckout
in Git wieder her -
Stellen Sie gelöschte Dateien vor dem Commit mithilfe des Befehls
git checkout
in Git wieder her - Stellen Sie einen Stapel gelöschter Dateien vor dem Commit in Git wieder her
Wir verwenden die Befehle git checkout
und git reset
, um gelöschte Dateien vor dem Commit wiederherzustellen. Git bietet uns leistungsstarke Optionen, um mit diesen Befehlen komplexe Aufgaben zu erledigen.
Wir können entweder die gelöschte Datei zuerst aus der Staging-Umgebung entfernen und sie dann in einem separaten Schritt im Arbeitsbaum wiederherstellen. Alternativ können wir die beiden Operationen in einem Schritt kombinieren.
Dieses Tutorial zeigt einen cleveren Trick, um mehrere Dateien mit einem einzigen Befehl stapelweise wiederherzustellen.
Stellen Sie gelöschte Dateien vor dem Commit mithilfe der Befehle reset
und checkout
in Git wieder her
Lassen Sie uns zunächst ein Repository einrichten und einige Dateien hinzufügen. Es sieht aus wie das:
Unsere ersten paar Commits sehen im Log so aus:
Wir löschen nun eine Datei mit dem Befehl rm
.
git rm file7.txt
Die gelöschte Datei file7.txt
ist nicht mehr in unserem Repository vorhanden.
Das Standardverhalten von rm
besteht darin, die Löschänderungen automatisch bereitzustellen.
Wir fahren jetzt mit der Wiederherstellung der gelöschten Datei fort, bevor wir sie festschreiben.
Zuerst machen wir die Löschung mit dem Befehl reset
rückgängig.
git reset <commit_hash> [--] <path_to_file>
Dieser Befehl stellt den Index auf den Zustand des commit_hash
für alle Dateien wieder her, die mit dem Parameter path_to_file
übereinstimmen.
git reset HEAD --file7.txt
Dies stellt den Index auf HEAD
für file7.txt
wieder her. HEAD
zeigt auf unseren letzten Commit.
Denken Sie daran, dass wir die Löschung nicht festgeschrieben haben, daher enthält unsere letzte Festschreibung keinen Löscheintrag.
Im Wesentlichen verwenden wir diesen Befehl, um gelöschte Dateien rückgängig zu machen.
Als nächstes stellen wir die gelöschte Datei im Arbeitsbereich mit dem Befehl git checkout
wieder her.
git checkout [--] <path_to_file>
checkout
überschreibt Inhalte im Arbeitsbaum mit dem Index in dieser Form.
git checkout -- file7.txt
Stellen Sie gelöschte Dateien vor dem Commit mithilfe des Befehls git checkout
in Git wieder her
Der Befehl git checkout
stellt uns ein Formular zur Verfügung, in dem wir die beiden obigen Schritte zu einem kombinieren können.
git checkout <commit> [--] <path_to_file>
In dieser Form überschreibt git checkout
Inhalte sowohl im Index- als auch im Arbeitsbereich mit Commit.
git checkout HEAD -- file7.txt
HEAD
zeigt auf unseren letzten Commit. Wir haben die Löschung nicht festgeschrieben, daher kennt unsere letzte Festschreibung die Löschoperation nicht.
Stellen Sie einen Stapel gelöschter Dateien vor dem Commit in Git wieder her
Was wäre, wenn wir eine Reihe von Dateien gelöscht und nicht festgeschrieben hätten? Angenommen, wir haben 1000 Dateien gelöscht und möchten sie jetzt alle wiederherstellen.
Die obigen Befehle 1000 Mal einzugeben, ist nicht die Art eines Programmierers, Dinge zu tun. Stattdessen können wir Platzhalter in den Pfadbezeichnern verwenden, um viele Dateien abzugleichen und sie mit einem einzigen Befehl wiederherzustellen.
git reset HEAD .
Dies ist derselbe Befehl wie oben, außer dass wir file7.txt
durch das .
ersetzt haben. Platzhalter. Der .
weist git an, alle Dateien abzugleichen.
Dieser Befehl bringt also alle unsere gelöschten Dateien aus der Staging-Phase. Wir restaurieren sie dann im Arbeitsbereich.
git checkout .
Derselbe Befehl mit file7.txt
wird wieder durch das .
ersetzt. Platzhalter. Es stellt alle nicht inszenierten Löschungen auf einmal wieder her.