Was ist der Unterschied zwischen Git Reset -gemischt, -soft und -Hard?

Was ist der Unterschied zwischen Git Reset -gemischt, -soft und -Hard?
Auf Git ist jedes Commit mit dem vorherigen Commit verbunden, und der Kopf zeigt auf das jüngste Commit in der Arbeitszweig. Die Komitee -Geschichte wird als Commit -Baum gespeichert. Manchmal müssen Entwickler jedoch die Festungsgeschichte ändern. Zu diesem Zweck die “$ Git ResetDer Befehl ”wird verwendet, um die Geschichte 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 -mischt.

Was ist der Unterschied zwischen Git Reset -gemischt, -soft und -Hard?

Git bietet mehrere Reset -Optionen. Auf der Grundlage ihrer Umgang mit den Commits unterscheiden sich alle verfügbaren Optionen voneinander. Sie alle ändern die Git -Geschichte und bewegen den Kopf zurück. Darüber hinaus kümmern sie sich unterschiedlich mit den Änderungen, wie beispielsweise:

  • Der "-weich”Option mit der“ verwendet “$ Git ResetBefehl ”, um die Dateien zu behalten und die Commit -Änderungen in den Git -Staging -Index zurückzugeben.
  • $ git zurückgesetzt -gemischt”Wird verwendet, um die Festungsänderungen rückgängig zu machen und die Datei aus dem Staging -Index zu entfernen, ohne sie aus dem Arbeitsverzeichnis zu löschen.
  • Der "-hartOption mit der “$ Git ResetDer Befehl ”wird verwendet, um alle Änderungen zu löschen und sie aus dem lokalen Arbeitsverzeichnis zu entfernen.

Nehmen wir ein Beispiel, um zu sehen, wie die “$ Git ResetDer 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 die “verwendenCD" Befehl:

$ CD "C: \ Git \ test_repo"

Schritt 2: Datei erstellen

Führen Sie nun den folgenden Befehl aus, um eine Datei zu erstellen:

$ touch file4.txt

Schritt 3: Datei zum Staging -Index hinzufügen

Verwenden Sie die “Git AddBefehl ”, um die neu generierte Datei in den Staging -Index hinzuzufügen:

$ git add Datei4 hinzufügen4.txt

Schritt 4: Änderungen begehen

Fügen Sie als Nächstes alle Änderungen zum Working -Repository hinzu, indem Sie die „ausführen“Git Commit" Befehl:

$ Git Commit -m "Datei4 hinzugefügt"

Schritt 5: Überprüfen Sie das Git -Protokoll

Überprüfen Sie dann den Git -Protokoll -Verlauf, um die neuesten Commits anzuzeigen, die hinzugefügt wurden:

$ git log

In der folgenden Ausgabe ist ersichtlich, dass alle neuesten hinzugefügten Commits angezeigt werden und die “KOPF”Zeigt auf das jüngste Commit:

Notiz: Um die aktuelle Zeigeposition des Kopfes besser zu überprüfenGit -ProtokollBefehl zusammen mit dem “-eine Linie" Flagge:

$ Git -Protokoll -Einmal

Nachfolgend zeigt die Ausgabe die Liste der Commit SHA Hash mit Commit -Nachrichten:

Schritt 6: Verwenden Sie den Befehl git reset -soft

Um die hinzugefügten Änderungen aus dem Git -Repository in den Staging -Index zurückzusetzen, verwenden Sie die “Git ResetBefehl zusammen mit dem “-weichOption und geben Sie die gewünschte Kopfposition an, in der der Zeiger verschoben werden muss:

$ git Reset -Soft Head ~ 1

Schritt 7: Überprüfen Sie den Git -Status

Überprüfen Sie nun die Rückkehrposition des Kopfes, um den Status der Git -Repository zu überprüfen:

$ Git Status

Es ist zu sehen, dass das “Git Reset -softDer Befehl ”Der Befehl hat die Commit -Änderungen am Git -Staging -Index zurückgegeben. Darüber hinaus die “Datei4.txtDie Datei befindet sich jetzt im Git -Staging -Index und muss begangen werden:

Schritt 8: Überprüfen Sie das Git -Protokoll

Um die aktuelle Position des Kopfes anzuzeigen, führen Sie den angegebenen Befehl zusammen mit dem “aus“ aus-eine Linie" Möglichkeit:

$ Git -Protokoll -Einmal

Hier zeigt der Kopf auf die “Datei3" begehen:

Schritt 9: Verwenden Sie Git Reset - gemischtes Befehl

Führen Sie die “aus, um die verpflichteten Änderungen und die Entfernen der Dateien aus dem Staging -Bereich rückgängig zu machen, ohne aus dem Arbeitsverzeichnis aus zu löschen$ git zurückgesetzt -gemischtBefehl zusammen mit der erforderlichen Kopfposition des Commits:

$ git Reset -Mischter 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 kann beobachtet werden, dass die angegebenen Festungsänderungen aus dem Staging -Bereich entfernt werden. Sie werden jedoch in den Arbeitsbereich platziert:

Schritt 11: Überprüfen Sie das Git -Protokoll

Überprüfen Sie den Git Repository Referenzprotokollverlauf zusammen mit dem SHA -Hash:

$ Git -Protokoll -Einmal

Schritt 12: Verwenden Sie Git Reset - Hard -Befehl

Um hinzugefügte Änderungen aus dem Git Local Working Directory zu entfernen, führen Sie die “aus“ aus$ git Reset -Hard" Befehl:

$ git Reset -harter Kopf ~ 1

Schritt 13: Überprüfen Sie den zurückgekehrten Kopfzeiger

Um den Kopfzeiger zu überprüfen, wenden Sie sich an die angegebene Position zurück und führen Sie die “aus“ ausGit -Protokoll" Befehl:

$ Git -Protokoll -Einmal

Die folgende Ausgabe zeigt, dass der Kopf auf die “zeigt“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 zu sehen, dass wir keine Spuren und anhängige Änderungen von “haben“Datei2.txt" Datei. Daher Datei2.TXT wurde vollständig entfernt:

Schritt 15: Überprüfen Sie die Liste des Repository -Inhalts

Um die Repository -Liste der Inhalte zu überprüfen, führen Sie die “aus“ aus “ausls" Befehl:

$ ls

Wie Sie sehen können, das “Datei2.txtDie Datei gibt es nicht im aktuellen Verzeichnis:

Wir haben den Unterschied zwischen Git Reset -gemischt, -soft- und -hard -Optionen erklärt.

Abschluss

Der "Git ResetDer Befehl ”wird verwendet, um die Änderungen zurückzusetzen, den Verlauf des Git -Repositorys zu ändern und Fehler zu beheben. Der "Git Reset -softDer Befehl ”Hält die Dateien und gibt die Commit -Änderungen in den Git -Staging -Bereich zurück. Im Gegensatz dazu die “Git Reset -mischteDer Befehl ”Nehmen Sie die Festungsänderungen nach und entfernen Sie die Datei aus dem Staging -Index, ohne sie aus dem Arbeitsverzeichnis zu löschen. So löschen Sie alle Änderungen und entfernen Sie sie aus dem Git -Arbeitsbereich, der “Git Reset -HardDer Befehl kann verwendet werden. Dieser Artikel zeigte den Unterschied zwischen Git Reset -mixed, -soft und -Hard.