Heim >Entwicklungswerkzeuge >Idiot >Was ist der Unterschied zwischen dem Staging-Bereich und der lokalen Bibliothek in Git?
Der Unterschied zwischen dem Staging-Bereich und der lokalen Bibliothek in Git: Der Staging-Bereich, auch Indexbereich genannt, ist ein Übergangsbereich zwischen dem Arbeitsbereich und dem lokalen Lager. Er zeichnet den Codestatus des Arbeitsbereichs auf (ob vorhanden). Änderungen oder ob sich was ändert); und das lokale Repository zeichnet den Status des lokalen Codes auf.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Git-Version 2.30.0, Dell G3-Computer.
1. Verständnis der Konzepte im Zusammenhang mit Git Warehouse
Wenn Sie Git-Befehle gründlich verstehen möchten, müssen Sie mehrere Konzepte im Zusammenhang mit Git Warehouse verstehen. Werfen Sie zunächst einen Blick auf ein lokales Codeverzeichnis D: Gittest-Verzeichnis:
Beachten Sie, dass .git ein verstecktes Verzeichnis ist und Sie versteckte Dateien anzeigen müssen, um es zu sehen.
Arbeitsverzeichnis: Einfach ausgedrückt gehören lokal gespeicherte Dateien oder Verzeichnisse zum Arbeitsbereich, und Codeänderungen werden normalerweise im Arbeitsbereich vorgenommen. Im Allgemeinen gehören lokale Dateien mit Ausnahme des versteckten .git-Verzeichnisses zum Arbeitsbereich. Die im Bild oben gezeigten mydir, file1.txt und file2.txt gehören alle zum Arbeitsbereich.
Stufe: Wie der Name schon sagt, handelt es sich um einen Übergang zwischen dem Arbeitsbereich und dem lokalen Lager. Er zeichnet den Codestatus des Arbeitsbereichs auf (ob es Änderungen gibt oder welche Änderungen vorliegen). Befindet sich im .git-Verzeichnis.
Lokales Repository (Repository): Zeichnet den Status des lokalen Codes auf und befindet sich im .git-Verzeichnis.
Verstehen von Status:
Denken Sie darüber nach: Wenn wir normalerweise eine wichtige Datei ändern, müssen wir zuerst ein Backup erstellen, um Änderungsfehler zu vermeiden und sie letztendlich wiederherzustellen. Wenn die Datei selbst groß ist, nimmt sie bei der Sicherung mehr Speicherplatz ein, was nicht kosteneffektiv ist. Es gibt eine andere Möglichkeit, den Änderungsstatus der Datei aufzuzeichnen, anstatt die Datei selbst zu sichern. Der Dateistatus ähnelt der folgenden Beschreibung:
Die erste Zeile der Datei: Ersetzen Sie xxx durch ****
Zwischen der dritten und vierten Zeile der Datei wird eine Zeile hinzugefügt, der Inhalt ist...
Um es ganz klar auszudrücken: Der Dateistatus ist der Änderungsdatensatz. Anhand des Änderungsdatensatzes können wir erkennen, welche Änderungen wir an der Datei vorgenommen haben. Anhand des Änderungsdatensatzes können wir auch den Status der Datei wiederherstellen vor der Änderung. 2. Erläuterung der Git-Befehle
git diff --cached Überprüfen Sie die Unterschiede zwischen dem Staging-Bereich und dem lokalen Lagergit diff HEAD Überprüfen Sie die Unterschiede zwischen dem Arbeitsbereich und dem lokalen LagerDie entsprechenden Operationen einiger Befehle lauten wie folgt:
Unten Nehmen wir ein konkretes Beispiel, um zu veranschaulichen, dass lokale Dateiänderungen zu Änderungen in verwandten Bereichen führen. Vor der Änderung ist der Status zwischen dem Arbeitsbereich, dem Staging-Bereich und dem lokalen Warehouse konsistent (1). Fügen Sie die lokal geänderte Datei file1.txt zu Hinzufügen hinzu Diese Zeile
Git-Status Überprüfen Sie die Änderungen von Dateien zwischen dem Arbeitsbereich, dem Staging-Bereich und dem lokalen LagerWie Sie im Bild oben sehen können,
Änderungen, die nicht für die Festschreibung bereitgestellt wurden:, befindet sich die Beschreibungsdatei im Der Arbeitsbereich hat sich geändert, aber die Änderungen wurden noch nicht an den Staging-Bereich übermittelt
git diff, um die Änderungen zwischen dem Arbeitsbereich und dem Staging-Bereich anzuzeigen
Wie aus dem Bild ersichtlich ist, was zwischen dem Arbeitsbereich und dem Staging-Bereich passiert ist der Staging-Bereich Dies liegt daran, dass die lokale Datei geändert wurde und die Änderung nicht an den Staging-Bereich übermittelt wurde
git diff HEAD Überprüfen Sie den Status zwischen dem Arbeitsbereich und dem lokalen Lager Wie Sie auf dem Bild sehen können Oben sind die Arbeitsbereichsunterschiede auch bei lokalen Lagerhäusern zu sehen. Es ist ganz einfach. Zu diesem Zeitpunkt sind der Status des lokalen Lagers und des Bereitstellungsbereichs konsistent. Überprüfen Sie den Bereitstellungsbereich und den lokalen Lagerbereich und Sie werden feststellen, dass es keinen Unterschied gibt (2) Senden Sie die lokalen Änderungen an den Staging-Bereich :Verwenden Sie nach der Übermittlung Git Diff zur Überprüfung. Sie werden feststellen, dass zwischen dem Arbeitsbereich und dem Staging-Bereich kein Unterschied besteht.
Aber es gibt Unterschiede zwischen dem Bereitstellungsbereich und dem Arbeitsbereich.
git diff --cached
Ähnlich werden Sie bei Verwendung von git diff HEAD feststellen, dass es immer noch Unterschiede zwischen dem Arbeitsbereich und dem lokalen Lager gibt.
(3) Senden Sie die Änderungen an das lokale Lager. Git Commit -m "Fügen Sie eine Zeile hinzu file1.txt“ ändert sich. Senden Sie es aus dem Staging-Bereich an das lokale Lager.
Überprüfen Sie den Git-Status und melden Sie, dass Ihr Zweig um 1 Commit vor „origin/master“ liegt. Dies zeigt an, dass die Änderungen im Arbeitsbereich an den übermittelt wurden lokales Lager, wurden jedoch nicht in die Remote-Filiale verschoben.git diff, git diff --cached, git diff HEAD findet keinen Unterschied in den Eingabeaufforderungen. Da die Änderungen am Arbeitsbereich an das lokale Lager übermittelt wurden, ist der Status des Arbeitsbereichs, des Bereitstellungsbereichs und des lokalen Lagers zu diesem Zeitpunkt konsistent.
Umgekehrter Vorgang
git add – git checkout bringt die Arbeitsbereichsdatei in den Staging-Bereichsstatus zurück und ersetzt die Arbeitsbereichsdatei durch die Staging-Bereichsdatei.
Wenn beispielsweise die Datei file1.txt im Arbeitsbereich geändert wird, wurde sie noch nicht an den temporären Speicherbereich übermittelt. Wenn Sie die Änderung aufgeben möchten, können Sie git checkout file1.txt verwenden, um die Datei in den Staging-Bereich zurückzugeben (die Änderung aufzugeben). git commit – git reset HEAD, um die zuletzt an das lokale Warehouse übermittelte Datei abzurufen zum Bereitstellungsbereich. Hat keinen Einfluss auf den Arbeitsbereich.Zusammenfassung:
Wenn wir eine bestimmte Änderung der lokalen Datei (Arbeitsbereich) aufgeben möchten:
Wenn die Änderung nicht an den temporären Bereich übermittelt wurde, können wir Git Checkcout zum Wiederherstellen verwenden.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen dem Staging-Bereich und der lokalen Bibliothek in Git?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!