Git
Chapters ▾ 2nd Edition

2.1 Git Grundlagen - Ein Git-Repository anlegen

Falls du es eilig hast und du nur die Zeit hast ein einziges Kapitel dieses hervorragendes Buches durchzulesen, bist du hier genau richtig.

Dieses Kapitel behandelt alle grundlegenden Befehle, die Du benötigst, um den großteil der Aufgaben zu erledigen, die mit Git erledigt werden müssen. Am Ende des Kapitels solltest Du in der Lage sein, ein neues Repository anzulegen und zu konfigurieren, Dateien zu versionieren bzw. Sie aus der Versionsverwaltung zu entfernen, Dateien in die Staging-Area hinzuzufügen und einen Commit durchzuführen.

Außerdem wird gezeigt, wie Du Git so konfigurieren kannst, dass es bestimmte Dateien und Dateimuster ignoriert, wie Du Fehler schnell und einfach rückgängig machen, wie Du die Historie eines Projekts durchsuchen und Änderungen zwischen Commits nachschlagen, und wie Du von einem Remote-Repository Daten herunter- bzw. dort hochladen kannst.

Ein Git-Repository anlegen

Du hast zwei Möglichkeiten, ein Git-Repository auf Deinem Rechner anzulegen.

  1. Du kannst ein lokales Verzeichnis, das sich derzeit nicht unter Versionskontrolle befindet, in ein Git-Repository verwandeln, oder

  2. 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.

Ein Repository in einem bestehenden Verzeichnis einrichten

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.

Ein existierendes Repository klonen

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.

scroll-to-top