Git
Wiederherstellen
Suche…
Wiederherstellen von einem verlorenen Commit
Falls Sie zu einem früheren Commit zurückgekehrt sind und ein neueres Commit verloren haben, können Sie das verlorene Commit durch Ausführen wiederherstellen
git reflog
Finden Sie dann Ihr verlorenes Commit und stellen Sie es wieder her
git reset HEAD --hard <sha1-of-commit>
Stellen Sie eine gelöschte Datei nach einem Commit wieder her
Falls Sie versehentlich einen Löschvorgang für eine Datei festgelegt haben und später feststellen, dass Sie ihn wieder benötigen.
Suchen Sie zuerst die Commit-ID des Commits, das Ihre Datei gelöscht hat.
git log --diff-filter=D --summary
Gibt Ihnen eine sortierte Zusammenfassung der Commits, die Dateien gelöscht haben.
Fahren Sie dann mit der Wiederherstellung der Datei fort
git checkout 81eeccf~1 <your-lost-file-name>
(Ersetzen Sie 81eeccf durch Ihre eigene Festschreibungs-ID.)
Wiederherstellen der Datei auf eine frühere Version
Um eine Datei auf eine frühere Version zurückzusetzen, können Sie reset
.
git reset <sha1-of-commit> <file-name>
Wenn Sie bereits lokale Änderungen an der Datei vorgenommen haben (die Sie nicht benötigen!), --hard
Sie auch die Option --hard
Einen gelöschten Zweig wiederherstellen
Um einen gelöschten Zweig wiederherzustellen, müssen Sie den Commit finden, der den Kopf Ihres gelöschten Zweigs war, indem Sie ihn ausführen
git reflog
Sie können den Zweig dann neu erstellen, indem Sie ihn ausführen
git checkout -b <branch-name> <sha1-of-commit>
Sie können gelöschte Verzweigungen nicht wiederherstellen, wenn gits Garbage Collector unvollständige Commits gelöscht hat - solche ohne Verweise. Halten Sie immer eine Sicherungskopie Ihres Repositorys bereit, insbesondere wenn Sie in einem kleinen Team / einem proprietären Projekt arbeiten
Wiederherstellen nach einem Reset
Mit Git können Sie die Uhr (fast) immer zurückdrehen
Haben Sie keine Angst davor, mit Befehlen zu experimentieren, die die Geschichte neu schreiben *. Standardmäßig löscht Git Ihre Commits nicht für 90 Tage, und während dieser Zeit können Sie sie problemlos aus dem Reflog wiederherstellen:
$ git reset @~3 # go back 3 commits
$ git reflog
c4f708b HEAD@{0}: reset: moving to @~3
2c52489 HEAD@{1}: commit: more changes
4a5246d HEAD@{2}: commit: make important changes
e8571e4 HEAD@{3}: commit: make some changes
... earlier commits ...
$ git reset 2c52489
... and you're back where you started
* Achten Sie auf Optionen wie - --hard
und --force
die jedoch Daten verwerfen können.
* Vermeiden Sie auch das Umschreiben des Verlaufs in allen Zweigen, in denen Sie zusammenarbeiten.
Erholen Sie sich von Git-Stash
Verwenden Sie, um den neuesten Stand nach dem Ausführen von Git-Stash zu erhalten
git stash apply
Um eine Liste Ihrer Vorräte anzuzeigen, verwenden Sie
git stash list
Sie erhalten eine Liste, die ungefähr so aussieht
stash@{0}: WIP on master: 67a4e01 Merge tests into develop
stash@{1}: WIP on master: 70f0d95 Add user role to localStorage on user login
Wählen Sie einen anderen Git-Stash zum Wiederherstellen mit der Nummer, die für den gewünschten Stash angezeigt wird
git stash apply stash@{2}
Sie können auch "Git Stash Pop" wählen, es funktioniert genauso wie "Git Stash anwenden" wie ..
git stash pop
oder
git stash pop stash@{2}
Unterschied im Git-Stash anwenden und Git-Stash-Pop ...
Git Stash Pop : - Stash-Daten werden aus dem Stapel der Stash-Liste entfernt.
Ex:-
git stash list
Sie erhalten eine Liste, die ungefähr so aussieht
stash@{0}: WIP on master: 67a4e01 Merge tests into develop
stash@{1}: WIP on master: 70f0d95 Add user role to localStorage on user login
Pope jetzt die Daten mit dem Befehl
git stash pop
Überprüfen Sie erneut, ob eine Liste vorhanden ist
git stash list
Sie erhalten eine Liste, die ungefähr so aussieht
stash@{0}: WIP on master: 70f0d95 Add user role to localStorage on user login
Sie können sehen, dass ein Stash-Datenbestand aus der Stash-Liste entfernt (geknipst) wird und aus @ {1} Stash {@} wurde.