0%

Kapitel 7

Remotes ohne Server

Was ein Remote wirklich ist

Du kannst Git mit einem anderen Repository verwenden, ohne das Internet zu nutzen. In diesem Kapitel bleiben alle Repositories in derselben Übungsumgebung. Die Abläufe sind echt. Nur die Entfernung zwischen den Repositories ist gering.

Ein Arbeitsrepository namens garden pusht in ein Bare-Repository origin.git. Ein Klon namens garden-copy erhält Verlauf durch clone oder fetch und führt origin/main. Alles läuft über lokale Pfade ohne Netzwerk.

Mit dem vorhandenen Repository beginnen

Das vorbereitete Verzeichnis garden ist ein gewöhnliches Arbeitsrepository. Es hat einen committeten Verlauf und einen Arbeitsbaum, den du bearbeiten kannst. Beginne mit Befehlen, die du bereits kennst:

pwd
git status
git log

Du solltest in /workspace/garden sein. Der Arbeitsbaum ist sauber, und main endet mit dem Commit, der plants.txt hinzugefügt hat.

Ein Remote bezeichnet ein anderes Repository

Ein Remote ist ein gespeicherter Name samt Speicherort für ein anderes Git-Repository. Git kann mit diesem Repository Commits, Branch-Positionen und andere Referenzen austauschen. Das andere Repository könnte bei einem Hosting-Dienst liegen, auf einem Server im Netzwerk, auf einem Wechseldatenträger oder im nächsten Verzeichnis. „Remote“ beschreibt die Beziehung zwischen Repositories und verspricht nicht, dass das Internet beteiligt ist.

In diesem Kapitel entsteht folgende lokale Anordnung:

/workspace/
├── garden/         ordinary working repository where you make a later commit
├── origin.git/     bare repository that stores shared history
└── garden-copy/    ordinary clone used to observe and fetch that history

garden und garden-copy werden Arbeitsbäume haben. origin.git wird ein Bare-Repository sein: ein Git-Repository, das Verlauf und Referenzen speichert, ohne einen bearbeitbaren Satz von Projektdateien auszuchecken. Dadurch eignet es sich als Austauschpunkt. Niemand bearbeitet Dateien in seinem Arbeitsbaum, weil es keinen Arbeitsbaum hat.

Der Befehl git init --bare erstellt diese Art von Repository. Der Befehl git clone erstellt aus einem vorhandenen Repository ein neues Arbeitsrepository. Du verwendest beide in den nächsten Lektionen, nachdem ihre Bestandteile erklärt wurden.

Drei Namen, die du auseinanderhalten musst

Halte beim Aufbau der Anordnung diese drei Namen auseinander:

  • main ist ein lokaler Branch in dem Repository, in dem du dich gerade befindest.

  • origin wird der übliche gespeicherte Name für ein anderes Repository sein.

  • origin/main wird eine Remote-Tracking-Referenz sein: eine lokale Aufzeichnung der Position von main in origin beim letzten Austausch.

In den nächsten Lektionen legst du diese Namen an und siehst, wie sie sich bewegen. Für den Moment reicht die Abgrenzung: Auf main arbeitest du, origin benennt ein anderes Repository, und origin/main zeigt gemerkte Informationen, statt dein bearbeitbarer Branch zu werden.

Was macht origin.git in diesem Kapitel zu einem Remote von garden?

Das nützliche Denkmodell lautet: Repository zu Repository. Ein Host kann dafür Speicher und Zusammenarbeit bereitstellen. Er verändert aber nicht, was ein Git-Remote ist.