Versionskontrolle mit Git auf einem Hoster wie GitHub, GitLab, BitBucket unter Visual Studio Code einrichten

Zwar lässt sich die Versionsverwaltung auch auf einem eigenen Server installieren, aber einfacher geht das Verwalten des eigenen Codes mit einem dedizierten Git-Hoster wie GitHub, GitLab und BitBucket. Wie das Zusammenspiel von Visual Studio Code und beispielsweise GitHub funktioniert, sehen wir uns hier genauer an.

Wofür braucht man ein entferntes Repository?

Es gibt zwei wichtige Gründe, ein entferntes Repository am besten auf einem der drei Git-Hoster einzusetzen:

  1. Datensicherung: Habe ich mein Projekt lediglich auf meinem Computer, ist die Gefahr sehr groß, dass ich Daten verliere. Sollte der Massenspeicher des Rechners versagen oder der Computer geklaut werden, verliere ich meine ganze Arbeit.
  2. Kooperation: Ich kann mit anderen zusammenarbeiten, wenn das Projekt auf einem von außen gut erreichbaren Server zur Verfügung steht.

Zwei Ansätze, die Versionskontrolle einzurichten

Es gibt zwei Ansätze, um die Versionskontrolle mit Git sinnvoll einzurichten: Im ersten Fall haben wir bereits ein externes Repository (Repo) auf einem Git-Hoster, im zweiten Fall haben wir mit Git bisher nur lokal auf unserem Computer gearbeitet.

1. Fall: Es gibt bereits ein Repository auf einem Hoster

Dies kommt vor, wenn es beispielsweise das Projekt bereits gibt und jemand daran gearbeitet hat. Dann hat die Person üblicherweise auf einem Git-Hoster das Projekt abgelegt und die Änderungen dort eingecheckt. Das macht die Sache für uns recht einfach, denn dann ist die gesamte Konfiguration des Projekts vorhanden, so dass wir das entfernte Repo lediglich auf unseren Computer klonen müssen.

Damit wir das Projekt auf unseren Rechner bekommen, suchen wir auf der Webseite des Hosters einen Knopf, auf dem „Clone“ oder etwas ähnliches steht. Dahinter verbirgt sich üblicherweise der Link, mit dem wir das entfernte Repository auf unseren Rechner klonen können. Auf das Repo kann man per SSH oder HTTPS zugreifen. Der Einfachheit halber verwenden wir in diesem Beispiel HTTPS.

  1. Wir legen ein Verzeichnis auf dem eigenen Rechner an, in das wir die Dateien aus dem entfernten Repo laden möchten.
  2. Wir starten Visual Studio Code und öffnen das eben angelegte Verzeichnis über die Menüpunkte File -> Add Folder to Workspace ….
  3. Wir öffnen innerhalb von VS Code das Terminal und schreiben: git init. Damit haben wir die Versionskontrolle Git im Verzeichnis angelegt.
  4. Nun holen wir uns von der Webseite des Git-Hosters den HTTPS-Link zum Repo.
  5. Schließlich führen wir folgendes Kommando aus: git remote add origin <Der von der Git-Hoster-Webseite kopierte Link>. Das sieht beispielsweise auf dem Hoster GitHub konkret so aus: git remote add origin https://github.com/uemit/fizzbuzz.git. Mit diesem Kommando fügen wir Git in unserem selbstangelegten Verzeichnis den Pfad zum entfernten Repo hinzu und sichern diesen Pfad unter dem Namen „origin“.
  6. Ob das wie gewünscht funktioniert hat, prüfen wir, indem wir den folgenden Befehl ausführen, der uns das zugehörige entfernte Repo nennt: git remote -v. Nach der Ausführung sollte uns Git die URL zum entfernten Repo zwei Mal unter dem Namen „origin“ zeigen.
  7. Schließlich können wir vom master-Branch die zum Arbeiten benötigten Dateien laden. Dafür verwenden wir den Befehl git pull origin master. Dieser sagt: Hol von master unter der Adresse „origin“ den aktuellen Stand.

Damit sind wir bereit, um mit dem Repo zu arbeiten. Wichtig ist, dass wir unseren ersten Commit mit dem Kommando git push -u origin master an unseren Git-Hoster senden, denn damit stellen wir klar, dass wir von nun an immer diesen Weg gehen möchten. Haben wir das einmal ausgeführt, können wir auf das kürzere git push wechseln und so einen Commit abschließen. Auf diese Weise landen unsere Änderungen im Repo auf dem entfernten Git-Host.

2. Fall: Das Repository existiert bisher nur lokal auf unserem Rechner

Wenn es das Repo bisher nur lokal gab, und wir sinnvollerweise mit einem Git-Hoster arbeiten möchten, dann gehen wir folgendermaßen vor:

  1. Wir loggen uns bei dem Git-Hoster unserer Wahl ein und erzeugen dort ein neues Repo.
  2. Bei der Namensvergabe müssen wir beachten, dass darin keine Leerzeichen, Umlaute, „ß“ oder ähnliche Sonderzeichen enthalten sind. So könnten wir etwa „fizzbuzz“ verwenden.
  3. Darüber hinaus treffen wir die Entscheidung, ob es sich um ein „public“ oder „private“ Projekt handelt. Bei „public“ ist unser Repo für alle sichtbar. Das ist beispielsweise für die Open-Source-Entwicklung sinnvoll. Wählen wir die Option „private“, dann haben nur diejenigen Zugriff auf das Repo, die explizit dazu eingeladen werden.
  4. Bei den restlichen Entscheidungen geben wir uns spartanisch: Weder lassen wir automatisch eine README- noch eine gitignore-Datei hinzufügen und auch das Anlegen einer Lizenz sparen wir uns. Der Grund für das Weglassen liegt im Rahmen, den wir uns hier gesetzt haben.
  5. Nun gibt GitHub ein paar Hinweise, wie wir abhängig von unserer Situation vorgehen können. In unserem Fall kommt die Option „…or push an existing repository from the command line“ in Frage. Darunter stehen die beiden Befehle, die wir als nächstes brauchen.
  6. Wir öffnen also in VS Code unser Projektverzeichnis und klicken uns dort ins Terminal; das könnte beispielsweise unser fizzbuzz-Projekt sein.
  7. Git haben wir für die Versionierung ja bereits verwendet, wir haben unser Projekt bisher lediglich nicht auf einen Git-Hoster transferiert. Das holen wir nun nach, indem wir das erste der beiden auf der GitHub-Webseite angezeigten Kommandos im Terminal ausführen: git remote add origin <Der Link zum Repo auf der Git-Hoster-Webseite>. Im Zusammenspiel mit GitHub sieht das für das hier verwendete Beispiel so aus: git remote add origin https://github.com/uemit/fizzbuzz.git.
  8. Ist alles eingerichtet, können wir unser Projekt mit einem beherzten git push -u origin master an den Hoster senden. Das ist der zweite der beiden Befehle auf der GitHub-Webseite. Ähnlich wie im weiter oben ausgeführten ersten Fall bedeutet dieser Befehl: Sende meine Commits in master auf den Git-Hoster, der unter „origin“ verzeichnet ist. Mithilfe des Parameters -u legen wir fest, dass wir in Zukunft bei git push unsere Commits immer in dieses entfernte Repo senden möchten.

Fazit

Der Umgang mit Git im Zusammenspiel mit einem Git-Hoster mag anfangs kompliziert wirken, aber nach der Ersteinrichtung ist das Arbeiten sehr einfach. Zur bereits beschriebenen „Versionskontrolle mit Git in Visual Studio Code“ kommt also lediglich der Schritt des Pushens hinzu.

Der Einsatz eines Git-Hosters lohnt sich auf jeden Fall. Du gewinnst dadurch neben der Möglichkeit, mit anderen am selben Projekt zusammenzuarbeiten auch eine innere Ruhe, weil du weißt, dass der aktuelle Stand deines Projekts auf einem Server fern von dir gesichert ist.

Was die Unterschiede zwischen den drei Git-Hostern GitHub, GitLab und BitBucket sind, sehen wir uns in einem Folge-Post an.