Heim > Artikel > Entwicklungswerkzeuge > Kann es wiederhergestellt werden, nachdem Git auf eine bestimmte Version wiederhergestellt wurde?
Bei der Verwendung von Git für die Projektentwicklung stoßen wir häufig auf Situationen, in denen wir eine Wiederherstellung auf eine bestimmte Version durchführen müssen. Wenn Sie jedoch den Befehl „git reset“ oder den Befehl „git revert“ verwendet haben, um ein Versions-Rollback durchzuführen, und die vorherige Version wiederherstellen möchten, ist dies dann noch möglich? In diesem Artikel wird dieses Problem für alle im Detail analysiert.
Lassen Sie uns zunächst die Funktionen von Git Reset und Git Revert verstehen.
git-Reset-Befehl: Setzen Sie den HEAD des aktuellen Zweigs auf den angegebenen Commit zurück. Sie können wählen, ob der Staging-Bereich und das Arbeitsverzeichnis auf den angegebenen Commit zurückgesetzt werden sollen.
git revert Befehl: Erstellen Sie einen neuen Commit, um den vorherigen Commit rückgängig zu machen. Sie können den angegebenen Commit oder eine Reihe von Commits rückgängig machen, um einen neuen Commit zu generieren.
Offensichtlich geht mit dem Befehl „git reset“ der vorherige Übermittlungsdatensatz verloren. Auch wenn git log zum Speichern des Übermittlungsverlaufs verwendet wurde, kann er nicht auf die vorherige Version zurückgesetzt werden. Git Revert kann die vorherige Übermittlung rückgängig machen, es wird jedoch ein neuer Übermittlungsdatensatz generiert und der vorherige Übermittlungsdatensatz ist weiterhin vorhanden.
Wenn Sie also den Befehl „git reset“ verwendet haben, ist es dann immer noch möglich, die vorherige Version abzurufen? Die Antwort ist, dass es möglich ist, aber je nach Situation müssen unterschiedliche Methoden gewählt werden.
Szenario 1: Wenn nach dem Zurücksetzen keine anderen Vorgänge ausgeführt werden (z. B. Dateien löschen, neue Dateien erstellen usw.), können Sie sie über den „Referenz“-Mechanismus von Git wiederherstellen.
1. Überprüfen Sie zuerst den Punkt von HEAD, bevor Sie es zurücksetzen:
git reflog
2. Überprüfen Sie den SHA-1-Wert des Commits, bevor Sie es zurücksetzen:
git show HEAD@{n}#. 🎜🎜# Unter diesen ist n das n-te Commit vor dem Zurücksetzen. 3. Zurücksetzen auf die Version vor dem Zurücksetzen:
git reset HEAD@{n}4. An diesem Punkt haben Sie die Version vor dem Zurücksetzen wiederhergestellt. Sie können Ihre erforderlichen Dateien direkt abrufen:
git checkout HEAD -- FILENAMEFILENAME ist die Datei, die Sie abrufen müssen. Szenario 2: Wenn Sie nach dem Zurücksetzen andere Vorgänge ausführen (z. B. Dateien löschen, neue Dateien erstellen usw.), können Sie zur Wiederherstellung auch den „Referenz“-Mechanismus verwenden, müssen jedoch zur Kasse gehen die vorherigen Beiträge noch einmal. 1. Überprüfen Sie den SHA-1-Wert des Commits, bevor Sie ihn zurücksetzen:
git show HEAD@{n}2. Überprüfen Sie den Commit vorher:
git checkout <commit-SHA>Unter ihnen , 5ca43e009a69c511f89f0721617e7c56 ist der SHA-1-Wert des vorherigen Commits. An diesem Punkt sind Sie zur vorherigen Version zurückgekehrt. 3. Rufen Sie die benötigten Dateien ab:
git checkout HEAD -- FILENAMEDie restlichen Schritte sind die gleichen wie in Szene eins. Es ist zu beachten, dass Sie es nach dem Git-Reset so schnell wie möglich wiederherstellen müssen, unabhängig davon, ob es sich um Szenario eins oder zwei handelt. Andernfalls können Sie nicht zurückkehren, wenn andere Commits vorgenommen werden zur Vorgängerversion. Bevor Sie Git Reset verwenden, sollten Sie daher den Vorgang bestätigen, bevor Sie fortfahren. Kurz gesagt, Git ist ein sehr leistungsfähiges Versionskontrollsystem. Es gibt viele andere Vorgänge bei der Behandlung von Versionsproblemen, wie z. B. Zweige, Tags usw. Sie müssen die entsprechende Lösung entsprechend den spezifischen Anforderungen auswählen Situation. Gleichzeitig sollten Sie gute Git-Nutzungsgewohnheiten entwickeln und rechtzeitig Backups und Commits durchführen, um unnötige Verluste zu vermeiden.
Das obige ist der detaillierte Inhalt vonKann es wiederhergestellt werden, nachdem Git auf eine bestimmte Version wiederhergestellt wurde?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!