Als Digitalo ist es kaum möglich, Software runterzuladen, ohne dabei mindestens einmal über GitHub zu stolpern. Doch was ist das und brauch ich das überhaupt? Man kennt es – als ambitionierter Internet-User stößt man täglich auf Begriffe, die man schon tausendmal gelesen oder gehört hat, bei denen man aber immer noch nicht wirklich versteht was sich dahinter verbirgt. Oder man hat nur eine ungefähre Ahnung, worum es geht und will durch das eigene Halbwissen nicht unangenehm auffallen.

Git: Versionsverwaltung für Software-Projekte

Sinn und Funktion von GitHub stecken schon im zweiteiligen Namen: Git ist nämlich der Name einer Software zur Versionsverwaltung. An einem Software-Projekt arbeiten heutzutage oftmals mehrere, teilweise sogar Hunderte oder Tausende Entwickler. Von denen widmet sich jeder einem anderen Teil des Programms, und deren Arbeitsergebnisse werden zusammengeführt. Natürlich könnte jeder Entwickler seine Änderungen und Neuerungen an eine zentrale Person schicken, und diese kümmert sich dann ausschließlich darum, den erhaltenen Code immer aktuell zu halten. Genau diese Tätigkeit lässt sich aber mithilfe der Versionsverwaltung wie Git automatisieren. Und weil das so praktisch ist und gut funktioniert, finden sich inzwischen viele bekannte Projekte auf GitHub wieder.

GitHub: Sämtliche Änderungen von allen Autoren werden gespeichert

Dazu gibt es dann diverse Applikationen für Git, hauptsächlich in Form von Kommandozeilen-Tools. Hiermit können Entwickler ihre Änderungen an einem Projekt zentral einreichen, und GitHub stellt diese Änderungen ausführlich auf der zugehörigen Website dar. Außerdem speichert Git jede Version des Projekts – egal, wie groß oder klein eine Änderung ist, mit Git kann man immer auf die vorherige Version zugreifen.

Hub: Web-Interface, Wiki und Support-System für Entwickler

Im zweiten Teil des Namens – Hub – steckt dann der Hinweis auf die Web-Fähigkeiten von GitHub. Prinzipiell ließe sich Git nämlich auch komplett ohne ein (Web-)Interface oder zentralen Server verwenden. GitHub hostet nicht nur kostenlos die Projekte der Entwickler, sondern reichert den Funktionsumfang auch zusätzlich an. Dank grafischer Darstellung lässt sich der Entwicklungsprozess von Projekten anschaulich darstellen. Ein Großteil der Features, zum Beispiel das Forken eines Projekts, auch durch einen Mausklick ausgeführt werden und benötigt keinen Kommandozeilen-Befehl mehr.

Dazu gibt es noch eine ganze Portion Web 3.0 in Bezug auf Community. Indem einem Repository oder einem Entwickler gefolgt wird, bekommt man automatisch alle Updates der Person beziehungsweise des Projekts mit und kann sofort die neueste Version heunterladen, einsetzen oder daran mitentwickeln. Außerdem gibt es Wiki-Funktionen für jedes Projekt sowie ein Support-System, um auftretende Probleme bei Nutzern direkt und übersichtlich bearbeiten zu können.

Das Github Survival Lexikon

Viele Menschen, die mit Software Entwicklung nichts anfangen können und GitHub nur nutzen, um dort die neueste Version einer Software herunterzuladen, fühlen sich vielleicht vom GitHub-typischen Vokabular abgeschreckt. „Stash mal deinen Working-Tree, sonst gibt’s einen Conflict, wenn du den Dev-Branch pullst“ – solche Sätze geben einige Entwickler tatsächlich von sich. Mit dem Github Survival Lexikon klappts aber mit der Kommunikation:

  • Repository / Repo: Ein Repository (oder kurz Repo) kann bei GitHub als Projekt verstanden werden. Die Dateien für ein Software-Projekt werden in einem solchen Repository abgelegt. Der Begriff stammt aus der Linux-Welt.
  • Branch: Innerhalb eines Repositorys kann es mehrere Versionen einer Software geben. Zum Beispiel eine Beta-Version und eine stabile Version für den Produktiv-Einsatz. Jede Version stellt dabei einen Branch („Ast“) des Repositorys dar.
  • Commit: Commit nennt sich der Vorgang, wenn eine neue Version eines Branches bei der Versionsverwaltung eingereicht wird. Das heißt, nachdem der Entwickler einen Vorgang an einer Software abgeschlossen hat, „committed“ er die Änderungen.
  • Pull beziehungsweise Pull-Request: Hat ein Entwickler einen Bug gefixt oder eine neue Funktion eingebaut, will er, dass seine Änderung in das ursprüngliche Projekt einfließt. Deswegen stellt er einen Pull-Request an den Administrator des jeweiligen Projekts. Dieser kann sich die Änderungen dann ansehen und entscheiden, ob er den Pull durchführt oder nicht.
  • Fork: Da alle öffentlichen Git-Projekte unter Open-Source-Lizenz stehen, kann auch jeder einen eigenen Ableger eines Repositorys, einen sogenannten Fork, starten. Dort kann jeder privat vor sich hin entwickeln und seine Version am Ende wieder dem ursprünglichen Projekt zuführen (Pull-Request stellen) – oder aber einfach eine eigenständige Variante verbreiten.
Nikolaos Kofidis
Head of Product Management bei der Redtree GmbH, ein leidenschaftlicher Digital Native und als solcher auch nicht von der Online Welt zu trennen. In Kombination mit seiner Passion für Marketing, Digital Business und Innovation ein idealer Gesprächspartner für Digitalisierung, Marketing und Technologie im digitalen Zeitalter.