Remotes ohne Server · Übung
Ein lokales Origin anlegen
Das Repository garden braucht ein anderes Repository, mit dem es Verlauf austauschen kann. Du legst es als benachbartes Verzeichnis an und gibst seinem Pfad dann innerhalb von garden den üblichen Namen origin.
Ein Bare-Repository anlegen
git init --bare verbindet den bereits bekannten Befehl zum Anlegen eines Repositorys mit der Option --bare. Diese sagt Git, dass es nur die Repository-Daten anlegen soll: Commits, Referenzen und Konfiguration, ohne ausgecheckten Arbeitsbaum. Das letzte Argument nennt das anzulegende Verzeichnis. Von /workspace/garden aus ist ../origin.git ein relativer Pfad zu einem Nachbarverzeichnis von garden.
In einem Pfad bedeutet .. das Elternverzeichnis. Von /workspace/garden aus erreichst du damit /workspace. Das angehängte /origin.git benennt ein Verzeichnis innerhalb dieses Elternverzeichnisses. Das ist ein relativer Pfad, weil er bei deinem aktuellen Verzeichnis beginnt. Ein mit / beginnender Pfad wie /workspace/origin.git ist ein absoluter Pfad und beginnt an der Wurzel des Dateisystems. Verwende hier den relativen Pfad, damit die drei Verzeichnisse gemeinsam umziehen können, ohne ihre gespeicherte Beziehung zu ändern.
Führe Folgendes aus:
git init --bare ../origin.git
Die Endung .git ist eine Konvention für Verzeichnisnamen von Bare-Repositories. Sie hilft beim Erkennen, dass das Verzeichnis ein Repository-Speicher ist und kein Projektarbeitsbaum. Git verlangt diese Endung nicht.
Das andere Repository als origin speichern
Durch das Anlegen von origin.git wird garden nicht automatisch damit verbunden. git remote add trägt im aktuellen Repository ein Remote ein. Sein erstes Argument ist der gewünschte Name, das zweite der Speicherort des anderen Repositorys.
origin ist der übliche Name für das Repository, mit dem ein Projekt zuerst geteilt oder von dem es geklont wurde. Es ist ein gewöhnlicher Name, kein besonderer Server. Speichere den relativen Pfad zum Nachbarverzeichnis unter diesem Namen:
git remote add origin ../origin.git
Prüfen, was garden gespeichert hat
git remote -v zeigt gespeicherte Remote-Einträge an. Die Option -v bedeutet verbose, also ausführlich: Sie zeigt Name und Speicherort für das Abrufen und für das Pushen, statt nur den Namen anzuzeigen.
git remote -v
Du solltest origin zweimal sehen, einmal mit (fetch) und einmal mit (push) markiert. Beide Zeilen sollten ../origin.git verwenden. Diese Beschriftungen beschreiben zwei Austauschrichtungen. Sie bedeuten nicht, dass bereits etwas übertragen wurde. Das Bare-Repository ist noch leer, und garden hat weiterhin seine ursprünglichen zwei Commits.
Warum legst du origin.git mit git init --bare an?
Du hast jetzt zwei Repositories nebeneinander und in einem davon einen Namen, der auf das andere zeigt. Noch wurde nichts zwischen ihnen übertragen. origin.git ist weiterhin völlig leer. Das ändert die nächste Lektion.