Du hast zwei Möglichkeiten, ein Git-Repository auf Deinem Rechner anzulegen.
-
Du kannst ein lokales Verzeichnis, das sich derzeit nicht unter Versionskontrolle befindet, in ein Git-Repository verwandeln, oder
-
Du kannst ein bestehendes Git-Repository von einem anderen Ort aus klonen.
In beiden Fällen erhältst Du ein einsatzbereites Git-Repository auf Deinem lokalen Rechner.
Wenn Du ein Projektverzeichnis hast, das sich derzeit nicht unter Versionskontrolle befindet, und Du mit dessen Versionierung über Git beginnen möchten, musst Du zunächst in das Verzeichnis dieses Projekts wechseln. Das sieht je nachdem, welches System verwendet wird, unterschiedlich aus:
für Linux:
$ cd /home/user/my_project
für macOS:
$ cd /Users/user/my_project
für Windows:
$ cd C:/Users/user/my_project
Führe dort folgenden Befehl aus:
$ git init
Der Befehl erzeugt ein Unterverzeichnis .git
, in dem alle relevanten Git-Repository-Daten enthalten sind, also so etwas wie ein Git-Repository Grundgerüst.
Zu diesem Zeitpunkt werden noch keine Dateien in Git versioniert.
In Kapitel 10, Git Interna, findest Du weitere Informationen, welche Dateien im .git
Verzeichnis erzeugt wurden.
Wenn Du bereits existierende Dateien versionieren möchtest (und es sich nicht nur um ein leeres Verzeichnis handelt), dann solltest Du den aktuellen Stand mit einem initialen Commit tracken.
Mit dem Befehl git add
legst Du fest, welche Dateien versioniert werden sollen und mit dem Befehl git commit
erzeugst Du einen neuen Commit:
Du kannst dies mit ein paar git add
-Befehlen erreichen. Damit markierst du die zu trackende Dateien. Anschließend gibst du ein git commit
ein:
$ git add *.c
$ git add LICENSE
$ git commit -m 'Initial project version'
Wir werden gleich noch einmal genauer auf diese Befehle eingehen. Im Moment ist nur wichtig zu verstehen, dass du jetzt ein Git-Repository erzeugt und einen ersten Commit angelegt hast.
Wenn du eine Kopie eines existierenden Git-Repositorys anlegen möchtest – um beispielsweise an einem Projekt mitzuarbeiten – kannst du den Befehl git clone
verwenden.
Wenn du bereits Erfahrung mit einem anderen VCS-System wie Subversion gesammelt hast, fällt dir bestimmt sofort auf, dass der Befehl „clone“ und nicht etwa „checkout“ lautet.
Das ist ein wichtiger Unterschied, den du unbedingt verstehen solltest. Anstatt nur eine einfache Arbeitskopie vom Projekt zu erzeugen, lädt Git nahezu alle Daten, die der Server bereithält, auf den lokalen Rechner.
Jede Version von jeder Datei der Projekt-Historie wird automatisch heruntergeladen, wenn du git clone
ausführst.
Wenn deine Serverfestplatte beschädigt wird, kannst du nahezu jeden der Klone auf irgendeinem Client verwenden, um den Server wieder in den Zustand zurückzusetzen, in dem er sich zum Zeitpunkt des Klonens befand. (Du wirst vielleicht einige serverseitige Hooks und dergleichen verlieren, aber alle versionierte Daten wären vorhanden – siehe Kapitel 4, Git auf dem Server, für weitere Details.)
Du klonst ein Repository mit dem Befehl git clone [url]
.
Um beispielsweise das Repository der verlinkbaren Git-Bibliothek libgit2
zu klonen, führst du folgenden Befehl aus:
$ git clone https://github.com/libgit2/libgit2
Git legt dann ein Verzeichnis libgit2
an, initialisiert in diesem ein .git
Verzeichnis, lädt alle Daten des Repositorys herunter und checkt eine Kopie der aktuellsten Version aus.
Wenn du in das neue libgit2
Verzeichnis wechselst, findest du dort die Projektdateien und kannst gleich damit arbeiten.
Wenn du das Repository in ein Verzeichnis mit einem anderen Namen als libgit2
klonen möchtest, kannst du das wie folgt durchführen:
$ git clone https://github.com/libgit2/libgit2 mylibgit
Dieser Befehl tut das Gleiche wie der vorhergehende, aber das Zielverzeichnis lautet diesmal mylibgit
.
Git unterstützt eine Reihe unterschiedlicher Übertragungsprotokolle.
Das vorhergehende Beispiel verwendet das https://
Protokoll, aber dir könnten auch die Angaben git://
oder user@server:path/to/repo.git
begegnen, welches das SSH-Transfer-Protokoll verwendet.
Kapitel 4, Git auf dem Server, stellt alle verfügbaren Optionen vor, die der Server für den Zugriff auf dein Git-Repository hat und die Vor- und Nachteile der möglichen Optionen.