Kapitel ▾ 2. Auflage

2.1 Git Grundlagen - Ein Git-Repository erhalten

Wenn Sie nur ein Kapitel lesen können, um mit Git loszulegen, dann ist es dieses. Dieses Kapitel behandelt jeden grundlegenden Befehl, den Sie benötigen, um die überwiegende Mehrheit der Dinge zu tun, mit denen Sie sich letztendlich mit Git beschäftigen werden. Am Ende des Kapitels sollten Sie in der Lage sein, ein Repository zu konfigurieren und zu initialisieren, mit der Verfolgung von Dateien zu beginnen und aufzuhören und Änderungen zu speichern und zu committen. Wir zeigen Ihnen auch, wie Sie Git einrichten, um bestimmte Dateien und Dateimuster zu ignorieren, wie Sie Fehler schnell und einfach rückgängig machen, wie Sie den Verlauf Ihres Projekts durchsuchen und Änderungen zwischen Commits anzeigen und wie Sie von entfernten Repositories pushen und pullen.

Ein Git-Repository erhalten

Typischerweise erhalten Sie ein Git-Repository auf eine von zwei Arten

  1. Sie können ein lokales Verzeichnis, das derzeit nicht unter Versionskontrolle steht, nehmen und es in ein Git-Repository umwandeln, oder

  2. Sie können ein bestehendes Git-Repository von anderswo klonen.

In beiden Fällen erhalten Sie ein Git-Repository auf Ihrem lokalen Rechner, das für die Arbeit bereit ist.

Initialisieren eines Repositories in einem bestehenden Verzeichnis

Wenn Sie ein Projektverzeichnis haben, das derzeit nicht unter Versionskontrolle steht und Sie es mit Git kontrollieren möchten, müssen Sie zuerst in das Verzeichnis dieses Projekts wechseln. Wenn Sie das noch nie getan haben, sieht es je nach System, auf dem Sie arbeiten, etwas anders 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

und geben Sie ein

$ git init

Dies erstellt ein neues Unterverzeichnis namens .git, das alle Ihre notwendigen Repository-Dateien enthält - ein Git-Repository-Skelett. Zu diesem Zeitpunkt wird noch nichts in Ihrem Projekt verfolgt. Weitere Informationen darüber, welche Dateien sich genau im .git-Verzeichnis befinden, das Sie gerade erstellt haben, finden Sie in Git Internals.

Wenn Sie bestehende Dateien versionieren möchten (im Gegensatz zu einem leeren Verzeichnis), sollten Sie wahrscheinlich mit der Verfolgung dieser Dateien beginnen und einen initialen Commit durchführen. Sie können dies mit einigen git add-Befehlen erreichen, die die zu verfolgenden Dateien angeben, gefolgt von einem git commit

$ git add *.c
$ git add LICENSE
$ git commit -m 'Initial project version'

Wir werden in Kürze besprechen, was diese Befehle tun. Zu diesem Zeitpunkt haben Sie ein Git-Repository mit verfolgten Dateien und einem initialen Commit.

Klonen eines bestehenden Repositories

Wenn Sie eine Kopie eines bestehenden Git-Repositories erhalten möchten - zum Beispiel ein Projekt, zu dem Sie beitragen möchten - ist der Befehl, den Sie benötigen, git clone. Wenn Sie mit anderen VCS wie Subversion vertraut sind, werden Sie feststellen, dass der Befehl "clone" und nicht "checkout" heißt. Dies ist ein wichtiger Unterschied - anstatt nur eine Arbeitskopie zu erhalten, erhält Git eine vollständige Kopie von fast allen Daten, die der Server hat. Jede Version jeder Datei für den Verlauf des Projekts wird standardmäßig heruntergeladen, wenn Sie git clone ausführen. Tatsächlich, wenn Ihre Serverfestplatte beschädigt wird, können Sie oft fast jeden Klon auf jedem Client verwenden, um den Server in den Zustand zurückzusetzen, in dem er sich befand, als er geklont wurde (möglicherweise verlieren Sie einige serverseitige Hooks und Ähnliches, aber alle versionierten Daten wären vorhanden - siehe Getting Git on a Server für weitere Details).

Sie klonen ein Repository mit git clone <url>. Wenn Sie zum Beispiel die Git-Linkable-Bibliothek namens libgit2 klonen möchten, können Sie dies wie folgt tun

$ git clone https://github.com/libgit2/libgit2

Dies erstellt ein Verzeichnis namens libgit2, initialisiert darin ein .git-Verzeichnis, lädt alle Daten für dieses Repository herunter und checkt eine Arbeitskopie der neuesten Version aus. Wenn Sie in das neu erstellte Verzeichnis libgit2 wechseln, sehen Sie die Projektdateien darin, bereit zur Bearbeitung oder Verwendung.

Wenn Sie das Repository in ein Verzeichnis mit einem anderen Namen als libgit2 klonen möchten, können Sie den neuen Verzeichnisnamen als zusätzliches Argument angeben

$ git clone https://github.com/libgit2/libgit2 mylibgit

Dieser Befehl tut dasselbe wie der vorherige, aber das Zielverzeichnis heißt mylibgit.

Git hat eine Reihe von verschiedenen Übertragungsprotokollen, die Sie verwenden können. Das vorherige Beispiel verwendet das https://-Protokoll, aber Sie können auch git:// oder user@server:path/to/repo.git sehen, das das SSH-Übertragungsprotokoll verwendet. Getting Git on a Server stellt Ihnen alle verfügbaren Optionen vor, die der Server einrichten kann, um auf Ihr Git-Repository zuzugreifen, sowie die Vor- und Nachteile jeder einzelnen.