Latest web development tutorials

Git Arbeitsbereich, Staging-Bereich und Repository

Grundbegriff

Wir verstehen, zuerst den Arbeitsbereich unter Git, temporären Speicherbereich und Endlagerkonzept

  • Workspace: dass Sie in den Computer - Katalog zu sehen.
  • Temporär: Englisch genannt Bühne oder einen Index. Im Allgemeinen in "git Verzeichnis" Index-Datei gespeichert (.git / index), so dass wir manchmal die temporäre Flächenindex (Index).
  • Repository: Workspace hat ein verstecktes Verzeichnis .git, dies ist nicht der Arbeitsbereich, aber Git - Repository.

Die folgende Abbildung zeigt die Beziehung zwischen dem Arbeitsbereich, dem Repository und Staging-Bereich zwischen dem Repository:

Die Abbildung auf der linken Seite im Arbeitsbereich auf der rechten Seite des Endlagers. In dem Repository mit "Index" des Bereichs ist ein temporärer Bereich (Bühne, Index), gekennzeichnet als "Master" Zweig wird durch den Master-Verzeichnisbaum dargestellt.

Die Zahl, die wir können sehen, dass zu diesem Zeitpunkt "HEAD" zeigt tatsächlich zu einem Master-Zweig "Cursor". So setzen Sie den Befehl HEAD gezeigt erscheinen, kann verwendet werden, um den Master zu ersetzen.

Figur Region Objekte als Git-Objektbibliothek identifiziert, befindet sich tatsächlich ".git / Objekte" Verzeichnis, die eine Vielzahl von Objekten und die Erstellung von Inhalten enthält.

Wenn der Bereich der Arbeit zu ändern (oder hinzufügen), um die Datei auszuführen "git add" -Befehl, wird der Verzeichnisbaum aktualisiert Staging-Bereich, während der Bereich Arbeit zu ändern (oder fügen) der Inhalt der Datei auf das Objekt in einer Bibliothek geschrieben das neue Objekt, und das Objekt-ID wird in einem temporären Bereich des Datei-Index aufgenommen.

Bei der Ausführung einer commit (git commit), Baum temporären Bereich in das Repository (Objekt-Bibliothek) zu schreiben, wird Master Zweig entsprechend aktualisiert. Scratch-Verzeichnisbaum, die Master-Zone ist, wenn gerichtet Baum vorgelegt.

Wenn "git reset HEAD" Befehl ausgeführt wurde, wird der Verzeichnisbaum Staging-Bereich neu geschrieben werden, ist es durch den Hauptverzweigungspunkt des Baumes ersetzt wird, aber der Arbeitsbereich ist nicht betroffen.

Wenn "git rm --cached <file>" Befehl ausgeführt wurde, das Löschen von Dateien direkt aus dem Staging-Bereich, ist der Arbeitsbereich nicht auf eine Änderung vornehmen.

Wenn "git Kasse." Performing oder "git checkout - <file>" Befehl, es wird das gesamte Papier Arbeitsbereich mit dem Staging-Bereich oder der angegebenen Datei zu ersetzen. Dieser Vorgang ist sehr gefährlich, es wird der Arbeitsbereich passt zu löschen sind in den Staging-Bereich hinzugefügt.

Bei der Durchführung von "git checkout HEAD." Oder "git checkout HEAD <file>" Befehl und wird den temporären Speicherbereich und Arbeitsbereich-Datei mit den HEAD Verzweigungspunkte ersetzen alle oder einen Teil der Datei zu meistern. Dieser Befehl kann auch sehr gefährlich sein, weil die Änderungen werden nicht nur die Arbeitsbereich festgeschriebenen Änderungen löschen die temporären Bereich uncommitted entfernen.