Grundlagen zu Git – Teil 2

Im ersten Teil wurde für ein Webseiten-Projekt ein lokales Git-Repository angelegt. Im zweiten Teil knüpfen wir daran an und erstellen ein Remote-Repository bei Github.

Rückblick

Das Projekt aus dem ersten Teil enthielt nur eine Datei mit der Bezeichnung „index.html“. Nach dem Einrichten des lokalen Git-Repositorys wurde zusätzlich der Ordner „.git“ angelegt. Mit den Befehlen

$ git add .
$ git commit -m "update h1 headline"

hatte ich dann eine Änderung in dieser Datei zum Repository hinzugefügt und ein commit durchgeführt.

Ein Remote-Repository bei Github anlegen

Bei einem lokalen Repository soll es nicht bleiben. Deswegen möchte ich zeigen, wie ein Remote-Repository eingerichtet wird, wobei ich in diesem Beispiel Github verwenden werde. Für die nachfolgenden Schritte ist es daher erforderlich, bei Github ein Konto zu haben.

Ruft also die Internetseite von Github auf und klickt auf den Button „New“. Auf der sich öffnende Seite vergebt Ihr anschließend einen Projektnamen (hier: „MyWebsite“) und wählt „Public“ oder „Private“ aus, womit festgelegt wird, ob das Repository für alle sichtbar oder privat sein soll.

Optional kann noch eine Projektbeschreibung hinzugefügt werden. Hier lautet sie schlicht „My Website“.

Ein Repository sollte eine Markdown-Datei mit dem Namen „README.md“ haben. Diese Datei enthält eine Beschreibung zum Projekt. Zwar habe ich zu diesem Projekt keine README-Datei erstellt, dennoch setze ich an dieser Stelle kein Häkchen, da ich zeigen möchte, wie diese Datei nachträglich zum Projekt bzw. zum Repository hinzugefügt werden kann.

Außerdem kann es sinnvoll sein, die Datei „.gitignore“ hinzuzufügen. Damit ist es möglich, jene Verzeichnisse und Dateien festzulegen, die nicht in das Remote-Repository übertragen werden sollen. Solltet Ihr diese Option auswählen, dann werdet Ihr ein Dropdown-Menü zu Gesicht bekommen, in dem eine Programmiersprache gewählt werden muss. Github erstellt dann eine .gitignore-Datei mit den Dateien, die üblicherweise nicht übertragen werden sollen. In diesem Beispiel füge ich keine .gitignore-Datei hinzu.

Und schließlich wäre da noch die Lizenz: Falls Euer Repository „Public“ ist, solltet Ihr auf jeden Fall eine Lizenz auswählen, damit Dritte wissen, in welchem Umfang sie Euren Code verwenden dürfen. Hier füge ich keine Lizenz hinzu.

Im Ergebnis sieht meine Auswahl folgendermaßen aus:

Create a new repository in Github

Auf der nächsten Seite erscheinen jetzt Setup-Anweisungen: Wenn auf dem Betriebssystem eine Git-Anwendung, wie beispielsweise Github Desktop oder Tower installiert wäre, könnte ich mit einem Klick auf „Setup in Desktop“ die Einrichtung hierüber abschließen. Es würde sich dann das entsprechende Programm öffnen.

Wir haben hier aber die bisherige Arbeit in der Shell vorgenommen und in der Shell wollen wird die Einrichtung auch abschließen. Also interessieren uns folgende zwei Optionen:

  • „…or create a new repository on the command line“
  • „…or push an existing repository from the command line“

Letzte trifft auf unsere Situation zu. Es existiert bereits ein lokales Repository, zu dem jetzt ein Remote-Repository, das bei Github gehostet wird, hinzugefügt werden soll. Von Interesse sind also die dort gezeigten drei Anweisungen:

$ git remote add origin https://github.com/niftycode/MyWebsite.git
$ git branch -M main
$ git push -u origin main

Wechselt in der Shell in das Projektverzeichnis und führt diese Anweisungen nacheinander aus. Nach der Ausführung des Befehls push erscheint eine Zusammenfassung ähnlich der folgenden:

Enumerating objects: 12, done.
Counting objects: 100% (12/12), done.
Delta compression using up to 4 threads
Compressing objects: 100% (9/9), done.
Writing objects: 100% (12/12), 1.24 KiB | 1.24 MiB/s, done.
Total 12 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), done.
To https://github.com/niftycode/MyWebsite.git
 * [new branch]      main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.

Wenn diese Schritte noch nie durchgeführt wurden, dann erfolgt dabei eine Abfrage der Github-Zugangsdaten, die in der Shell eingeben werden müssen. Andernfalls wird der Befehl push nicht ausgeführt. Anstelle des Github-Passworts muss ein Personal Access Token verwendet werden. So einen Token kann auf Github unter

> Settings > Developer Settings > Personal access tokens

generiert werden. Weitere Informationen zu diesem Thema findet sich in der Github-Hilfe.

Eine neue Datei hinzufügen

In unserem Projekt fehlen jetzt noch die Dateien „.gitignore“ und „README.md“. Letzte sollte auf jeden Fall vorhanden sein, während „.gitignore“ vorerst nicht benötigt wird. Auf UNIX-Artigen Systemen könnt Ihr in der Shell das Projektverzeichnis aufrufen und den Befehl

$ touch README.md

eingeben. Unter Windows steht Euch die Git Bash zur Verfügung. Dieser Vorgang erzeugt eine leere Datei mit dem entsprechenden Namen. Alternativ öffnet Ihr einen Texteditor und speichert eine Datei mit der Bezeichnung „README.md“ im Projektverzeichnis ab, das jetzt wie folgt aussieht:

Projektname
  |
  |--.git
  |--README.md
  |--index.html

Die Datei README.md wurde allerdings noch nicht zum lokalen Repository hinzugefügt. Außerdem soll sie auch im Remote-Repository vorhanden sein, was wiederum durch den Befehl git push erreicht wird.

Führt dafür zunächst folgende Anweisungen aus:

$ git add README.md
$ git commit -m "add README"
[main 6354581] add README
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README.md

Anschließend erfolgt der push in das Remote-Repository:

$ git push
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 327 bytes | 327.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/niftycode/MyWebsite.git
   13b8ebf..6354581  main -> main

Wenn Ihr jetzt im Browser die Projektseite bei Github aufruft, sollte dort die hinzugefügte Datei „README.md“ angezeigt werden.

Sofern Euer Repository öffentlich ist, können andere Nutzer es ab jetzt Klonen. Die Anweisung dazu lautet:

$ git clone https://github.com/<username>/<repository>.git

Damit sind wir am Ende dieses kleinen Tutorials angekommen. In einem zukünftigen Artikel werden wir uns dann grafischen Benutzeroberfläche – also Git Clients – näher ansehen. Außerdem werde ich auf das Klonen und Forken näher eingehen.