Github erklärt: Was genau ist das eigentlich?

Es gibt so Websites, die man kennt, ohne sie wirklich zu kennen. Das Wort hat man schon 1.000 Mal gesehen. Doch was sich dahinter verbirgt, hat man nie wirklich komplett verstanden. Wir bringen Licht ins Dunkel und klären ein bisschen über genau solche Plattformen auf. In der Vergangenheit haben wir uns bereits Reddit und Tumblr angeschaut. Heute erklären wir euch, was es mit GitHub auf sich hat und wie es funktioniert.
Git: Versionsverwaltung für Software-Projekte
Sinn und Funktion von GitHub stecken schon im zweiteiligen Namen: Git ist nämlich auch der Name einer Software zur Versionsverwaltung. Und was ist das schon wieder? Ganz einfach: An einem Software-Projekt arbeiten heutzutage oftmals mehrere, teilweise sogar Hunderte oder Tausende Entwickler:innen mit. Von denen widmet sich jeder einem anderen Teil des Programms, und die Arbeitsergebnisse müssen irgendwo zusammengeführt werden.
Natürlich könnten die Entwickler:innen ihre Änderungen und Neuerungen an eine zentrale Person schicken, und diese kümmert sich dann ausschließlich darum, den erhaltenen Code immer zu aktualisieren. Genau diese Tätigkeit lässt sich aber mithilfe einer Versionsverwaltung wie Git automatisieren. Und weil das so praktisch ist und gut funktioniert, finden sich inzwischen viele bekannte Open-Source-Projekte auf GitHub wieder (zum Beispiel der Linux-Kernel, das Web-App-Framework Ruby on Rails oder die JavaScript-Bibliothek jQuery).

So sieht eine Projektansicht auf GitHub typischerweise aus. (Screenshot: t3n)
GitHub: Sämtliche Änderungen von allen Autor:innen werden gespeichert
Dazu gibt es diverse Client-Applikationen für Git, hauptsächlich in Form von Kommandozeilen-Tools. Hiermit können Entwickler:innen 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 Software-Projekts – egal, wie groß oder klein eine Änderung ist, mit Git könnt ihr immer auf die vorherige Version zugreifen.

GitHub visualisiert alle Änderungen verschiedener Autor:innen an einem Projekt. (Screenshot: t3n)
„Stash mal deinen Working-Tree, sonst gibt’s einen Conflict, wenn du den Dev-Branch pullst“
Viele Menschen, die mit Entwicklung nichts am Hut haben 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:innen anscheinend tatsächlich von sich. Aber keine Angst, wir haben hier ein kleines GitHub-Wörterbuch für euch zusammengestellt:
- Was bedeutet Repository bei GitHub? Ein Repository (oder kurz Repo) kann bei GitHub einfach als Projekt verstanden werden. Die Dateien für ein Software-Projekt werden in einem Repository abgelegt. Der Begriff stammt aus der Linux-Welt.
- Was heißt „Branch“ bei GitHub? Innerhalb eines Repositories kann es mehrere Versionen einer Software geben. Zum Beispiel eine experimentelle Beta-Version und eine stabile Version für den Produktiv-Einsatz. Jede Version stellt dabei einen Branch („Ast“) des Repositories dar.
- Wofür steht Commit bei GitHub? Ein Commit kann auch als Revision verstanden werden. Speichern Entwickler:innen Änderungen, die sie programmiert haben, werden diese sowie die Verantwortlichen und der Zeitpunkt der Änderung mit dem Commit vermerkt. Somit sind alle Änderungen in einem Projekt genau nachvollziehbar.
- Maintainer: Maintainer werden die Verantwortlichen der Repositories genannt. Bei Open-Source-Projekten sind das meist mehrere Entwickler:innen. Sie warten und verwalten die Open-Source-Projekte.
- Pull-Request: Hat ein Entwickler oder eine Entwicklerin einen Bug gefixt oder eine neue Funktion in einem Repository eingebaut, will er oder sie, dass seine Änderung in das ursprüngliche Projekt einfließt. Deswegen stellen Entwickler:innen einen Pull-Request an den Maintainer des jeweiligen ursprünglichen Projekts und bitten so darum, dass die Änderungen übernommen werden.
- Pull: Mit einem Pull werden die Änderungen, die Nutzer:innen an ihrem Repository vorgenommen haben, übernommen. Außerdem können mit einem Pull auch Maintainer den Pull-Request von Nutzer:innen bestätigen.
- Fork: Da alle öffentlichen Git-Projekte unter Open-Source-Lizenz stehen, kann auch jeder einen eigenen Ableger eines Repositories, 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.
Hub: Web-Interface, Wiki und Support-System für Entwickler:innen
Im zweiten Teil des Namens – Hub – steckt dann noch 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. Aber GitHub hostet nicht nur kostenlos die Open-Source-Projekte der Entwickler:innen, sondern reichert den Funktionsumfang von Git auch zusätzlich an. Dank grafischer Darstellung im Browser lässt sich der Entwicklungsprozess von Software-Projekten anschaulich darstellen – zumindest für Menschen, die eine grobe Ahnung davon haben. Außerdem kann 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.

Mit Community-Features wie Nutzerprofilen, denen ihr folgen könnt, wertet GitHub die Funktionalitäten des Kommandozeilenwerkzeugs Git merklich auf. Im Bild: unser eigenes. (Screenshot: t3n)
Dazu gibt es noch eine ganze Portion Web 2.0 in Bezug auf Community-Features. Indem ihr einem Repository oder Entwickler:innen folgt, bekommt ihr automatisch alle Updates der Person beziehungsweise des Projekts mit und könnt euch sofort die neueste Version herunterladen, einsetzen oder daran mitentwickeln. Außerdem gibt es Wiki-Funktionen für jedes Projekt sowie ein Support-System, um auftretende Probleme bei Nutzer:innen direkt und übersichtlich bearbeiten zu können.
Dieser Artikel wurde am 7. März 2024 aktualisiert.