Login
Newsletter
Werbung

Do, 25. Juni 2015, 15:00

Git-Tutorium – Teil 4: GitHub

Arbeiten mit zwei Remote-Repositories

Wenn man regelmäßig zu einem Projekt über GitHub beiträgt, bietet sich eine lokale Konfiguration an, die das Arbeiten mit zwei Remote-Repositories erleichtert. Dadurch, dass man letztendlich mit zwei Repositories arbeitet, müssen beide korrekt verwaltet werden. So gibt es einmal das eigene Repository, in dem man Schreibrechte besitzt, und das Repository des Projektes, wohin die Pull-Requests und auch anderen Änderungen des Projektes fließen. Man sollte daher immer beachten, dass man sein eigenes Repository auf dem eigenen Stand hält.

Wenn man die oben aufgelisteten Befehle ausgeführt hat, ist der eigene Fork als Remote-Repository origin konfiguriert. Dies sollte man genau so belassen, da man alle Branches in das eigene Repository pusht. Jetzt sollte man das Repository des Projektes ebenfalls als Remote-Repository hinzufügen. Hier bietet es sich an, es upstream zu nennen, da es sich schließlich um das Upstream-Projekt handelt.

$ git remote add upstream git@github.com:svijee/drunken-nemesis.git

Jetzt ist zwar das Repository konfiguriert, allerdings sind die Änderungen noch nicht heruntergeladen. Dies kann man mit einem der beiden aufgeführten Befehle durchführen:

$ git remote update
$ git fetch upstream

Während der erste Befehl alle Remote-Repositories herunterlädt, lädt letzterer Befehl nur das Remote upstream herunter. In der Regel ist es nun so, dass sich auf dem Upstream-Repository einiges tut, diese Änderungen müssten dann regelmäßig in das eigene Repository übernommen werden. Dazu sollte man regelmäßig git remote update oder git fetch upstream ausführen und anschließend den Branch aus dem Remote-Repository in den Branch des eigenen Repositorys mergen. In diesem Beispiel ist es der Branch master, den man aktualisieren möchte:

$ git merge upstream/master

Sofern keine Änderungen auf dem Branch master im eigenen Repository sind, sollte der Merge problemlos funktionieren. Änderungen, die man dem Haupt-Repository beifügen will, sollte man daher immer in einem neuen Branch anlegen, um Merge-Konflikte zu vermeiden.

Häufig passiert es aber auch, dass man Pull-Requests anlegt, die zu einem späteren Zeitpunkt nicht mehr automatisch ohne Konflikte gemergt werden können. Als Einreicher von Pull-Requests sollte man also immer darauf achten, dass der Pull-Request ohne Konflikte gemergt werden kann. Da dies nicht immer möglich ist, müssen gegebenfalls Commits aus dem Entwicklungsbranch des Haupt-Repositorys übernommen werden. Diese kann man entweder mit dem git merge-Befehl mergen, schöner ist es allerdings, wenn man ein Rebase durchführt, was im dritten Teil dieses Tutoriums erläutert wurde.

Weitere Funktionen von GitHub

GitHub bietet nicht nur das Hosten von Repositories an. Die Funktionen sind mittlerweile vielfältig und decken so gut wie alle Wünsche ab, die man an ein Software-Projekt haben kann. Darunter ein Ticket-System (»Issues«) und ein Wiki. Beide sind direkt über das Repository zu erreichen. Daneben kann man auch statische Webseiten mit GitHub-Pages hosten oder Gists als Lager für einzelne Dateien anlegen.

Alternativen

GitHub ist nicht die einzige Plattform, welche das Hosten von Repositories mit sinnvollen Features erweitert, um einfach und kollaborativ an Projekten zu arbeiten. So hat GitHub auch Nachteile, etwa steht es selbst nicht unter eine Open-Source-Lizenz und das Hosten von privaten, nicht öffentlichen Repositories kostet Geld.

Als Alternativen gibt es Gitlab und Bitbucket, bei denen man auch private Repositories mit Einschränkungen kostenlos hosten kann. Gitlab kann man aber auch selbst auf eigenen Servern hosten, sodass man für den Firmen-internen Gebrauch von Closed-Source-Software den Quellcode nicht auf fremde Server hochladen muss.

Autoreninformation

Sujeevan Vijayakumaran (Webseite) nutzt seit drei Jahren Git als Versionsverwaltung.

Dieser Artikel ist in freiesMagazin 06/2015 (ISSN 1867-7991) erschienen. Veröffentlichung mit freundlicher Genehmigung.

  • Das Werk darf vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden, Abwandlungen und Bearbeitungen des Werkes müssen unter den gleichen Bedingungen weitergegeben werden. Der Name des Autors/Rechteinhabers muss in der von ihm festgelegten Weise genannt werden.

    - Weitere Informationen
Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung