Was ist der Unterschied zwischen git reset –mixed, –soft und –hard?

Was Ist Der Unterschied Zwischen Git Reset Mixed Soft Und Hard



Auf Git ist jeder Commit mit dem vorherigen Commit verknüpft, und der HEAD zeigt auf den neuesten Commit im Arbeitszweig. Der Commit-Verlauf wird als Baum von Commits gespeichert. Manchmal müssen Entwickler jedoch den Commit-Verlauf ändern. Dazu ist die „ $ git zurückgesetzt “-Befehl wird verwendet, um den Verlauf des Git-Repositorys zu ändern und Fehler zu beheben, die gemacht wurden.

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-Protokoll

In 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 --online

Die 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-Status

Es 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 --online

Hier 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-Status

Es 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 --online

Die 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-Status

Es 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:

$ ls

Wie 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.