Dieser Artikel erklärt kurz den Unterschied zwischen git reset –hard, –soft und –mixed.
Was ist der Unterschied zwischen git reset –mixed, –soft und –hard?
Git bietet mehrere Reset-Optionen. Je nachdem, wie sie mit den Commits umgehen, unterscheiden sich alle verfügbaren Optionen voneinander. Sie alle ändern den Git-Verlauf und verschieben den HEAD zurück. Darüber hinaus handhaben sie die Änderungen unterschiedlich, wie zum Beispiel:
- Das ' -Sanft ” Option verwendet mit der “ $ git zurückgesetzt “, um die Dateien beizubehalten und die Commit-Änderungen an den Git-Staging-Index zurückzugeben.
- „ $ git reset –gemischt “ wird verwendet, um die Commit-Änderungen rückgängig zu machen und die Datei aus dem Staging-Index zu entfernen, ohne sie aus dem Arbeitsverzeichnis zu löschen.
- Das ' -schwer ” Option mit der “ $ git zurückgesetzt “-Befehl wird verwendet, um alle Änderungen zu löschen und aus dem lokalen Arbeitsverzeichnis zu entfernen.
Nehmen wir ein Beispiel, um zu sehen, wie die „ $ git zurückgesetzt ” Befehl funktioniert mit verschiedenen Optionen!
Schritt 1: Gehen Sie zum gewünschten Git-Repository
Wechseln Sie zunächst zu Ihrem gewünschten Git-Repository, indem Sie das „ CD ' Befehl:
$ CD 'C:\Los \t is_repo'
Schritt 2: Datei erstellen
Führen Sie nun den unten angegebenen Befehl aus, um eine Datei zu erstellen:
$ berühren Datei4.txt
Schritt 3: Datei zum Staging-Index hinzufügen
Verwenden Sie das „ git hinzufügen ” Befehl, um die neu generierte Datei zum Staging-Index hinzuzufügen:
$ git hinzufügen Datei4.txt
Schritt 4: Änderungen übernehmen
Fügen Sie als Nächstes alle Änderungen zum Arbeits-Repository hinzu, indem Sie das „ Git Commit ' Befehl:
$ Git Commit -m 'Datei4 hinzugefügt'
Schritt 5: Überprüfen Sie das Git-Protokoll
Überprüfen Sie dann den Verlauf des Git-Protokolls, um die zuletzt hinzugefügten Commits anzuzeigen:
$ Git-ProtokollIn der Ausgabe unten ist zu sehen, dass alle zuletzt hinzugefügten Commits angezeigt werden und die „ KOPF “ zeigt auf den letzten Commit:
Notiz: Um die aktuelle Zeigeposition des KOPFES besser zu überprüfen, führen Sie das „ Git-Protokoll “ Befehl zusammen mit dem „ -eine Linie ' Flagge:
$ Git-Protokoll --onlineDie unten angegebene Ausgabe zeigt die Liste der Commit-SHA-Hash mit Commit-Nachrichten:
Schritt 6: Verwenden Sie git reset –soft Command
Um die hinzugefügten Änderungen aus dem Git-Repository in den Staging-Index zurückzusetzen, verwenden Sie die „ git zurücksetzen “-Befehl zusammen mit dem „– Sanft ” Option, und geben Sie die gewünschte HEAD-Position an, an der der Zeiger bewegt werden soll:
$ git zurücksetzen --Sanft KOPF~ 1
Schritt 7: Überprüfen Sie den Git-Status
Überprüfen Sie nun die Umkehrposition des HEAD und überprüfen Sie den Status des Git-Repositorys:
$ Git-StatusEs ist zu erkennen, dass die „ git reset –soft “-Befehl hat die Commit-Änderungen an den Git-Staging-Index zurückgegeben. Außerdem ist die „ Datei4.txt “-Datei befindet sich jetzt im Git-Staging-Index und muss festgeschrieben werden:
Schritt 8: Überprüfen Sie das Git-Protokoll
Um die aktuelle Position von HEAD anzuzeigen, führen Sie den angegebenen Befehl zusammen mit dem „ -eine Linie ' Möglichkeit:
$ Git-Protokoll --onlineHier zeigt der KOPF auf „ Datei3 ' begehen:
Schritt 9: Verwenden Sie git reset – mixed Command
Um festgeschriebene Änderungen rückgängig zu machen und die Dateien aus dem Staging-Bereich zu entfernen, ohne sie aus dem Arbeitsverzeichnis zu löschen, führen Sie das „ $ git reset –gemischt “-Befehl zusammen mit der erforderlichen HEAD-Position des Commit:
$ git zurücksetzen --gemischt KOPF~ 1
Schritt 10: Überprüfen Sie den Git-Status
Zeigen Sie die neu hinzugefügten Änderungen an, indem Sie den Git-Repository-Status überprüfen:
$ Git-StatusEs ist zu beobachten, dass die angegebenen Commit-Änderungen aus dem Staging-Bereich entfernt werden. Sie werden jedoch im Arbeitsbereich platziert:
Schritt 11: Überprüfen Sie das Git-Protokoll
Überprüfen Sie den Verlauf des Referenzprotokolls des Git-Repositorys zusammen mit dem SHA-Hash:
$ Git-Protokoll --online
Schritt 12: Verwenden Sie git reset — hard Command
Um hinzugefügte Änderungen aus dem lokalen Git-Arbeitsverzeichnis zu entfernen, führen Sie das „ $ git reset –hart ' Befehl:
$ git zurücksetzen --schwer KOPF~ 1
Schritt 13: Überprüfen Sie den umgekehrten HEAD-Zeiger
Um den HEAD-Zeiger zu überprüfen, kehren Sie zur angegebenen Position zurück, führen Sie das „ Git-Protokoll ' Befehl:
$ Git-Protokoll --onlineDie folgende Ausgabe zeigt, dass der HEAD auf „ Datei1 hinzugefügt ' begehen:
Schritt 14: Überprüfen Sie den Git-Status
Um die hinzugefügten Änderungen anzuzeigen, überprüfen Sie den Git-Status:
$ Git-StatusEs ist ersichtlich, dass wir keine Spur und ausstehende Änderungen von „ Datei2.txt ' Datei. Daher wurde File2.txt vollständig entfernt:
Schritt 15: Überprüfen Sie die Liste der Repository-Inhalte
Um die Inhaltsliste des Repositorys zu überprüfen, führen Sie das „ ls ' Befehl:
$ lsWie Sie sehen können, ist die „ Datei2.txt ” Datei existiert nicht im aktuellen Verzeichnis:
Wir haben den Unterschied zwischen git reset –mixed, –soft und –hard Optionen erklärt.
Fazit
Das ' git zurücksetzen “-Befehl wird verwendet, um die Änderungen zurückzusetzen, den Verlauf des Git-Repositorys zu ändern und Fehler zu beheben. Das ' git reset –soft “-Befehl behält die Dateien und gibt die Commit-Änderungen an den Git-Staging-Bereich zurück. Im Gegensatz dazu ist die „ git reset – gemischt “ macht die Commit-Änderungen rückgängig und entfernt die Datei aus dem Staging-Index, ohne sie aus dem Arbeitsverzeichnis zu löschen. Um alle Änderungen zu löschen und aus dem Git-Arbeitsbereich zu entfernen, muss das „ git reset – hart “-Befehl verwendet werden. Dieser Artikel veranschaulicht den Unterschied zwischen git reset –mixed, –soft und –hard.