GitHub – einer dieser Begriffe, den Sie in den Weiten des Internets womöglich schon einmal aufgeschnappt haben, aber nicht so recht einordnen konnten. So viel sei verraten: Es handelt sich um die weltweit größte Softwareentwicklungsplattform. Ein kompliziertes Wort, und hier bestimmt nicht das letzte, schließlich bewegen wir uns im Programmiergenre. Doch keine Sorge, wir erklären alles ganz einfach und legen sogar ein Wörterbüchlein bei.
Git + Hub
Sinn und Funktion lassen sich aus dem zweigeteilten Namen ableiten, Git und Hub. Git ist der Name einer freien Software zur Versionsverwaltung, die bei Softwareprojekten zum Einsatz kommt. Ein solches Projekt besteht in der Regel aus mehreren Teilen. Jeder einzelne davon wird von einem separaten Entwicklerteam bearbeitet. Die gesamte Crew umfasst nicht selten hunderte oder gar tausende Programmierer. Da stellt sich die Frage: Wie fügt man diese vielen Puzzleteile zu einem großen Ganzen zusammen?
Eine Variante wäre, jedes Entwicklerteam schickt seine Änderungen an eine zentrale Abteilung, die daraufhin den Code laufend aktualisiert. Das klingt zwar umständlich, wird aber gemacht. Allerdings handelt es sich dabei nicht um eine reale, sondern um eine virtuelle Abteilung innerhalb der Git-Software.
Hub wiederum bedeutet Knotenpunkt. So ergibt sich auch die Definition: GitHub ist eine Plattform für Git-Projekte, von denen Sie die eigenen verwalten und anderen folgen können. Mittlerweile befinden sich dort viele namhafte Open-Source-Projekte wie der Linux-Betriebssystemkern, das Webframework Ruby on Rails oder die JavaScript-Bibliothek jQuery.
Denglisches Wörterbuch
Die Kommunikation während der Arbeit besteht großteils aus feinstem Denglisch. Falls Sie keinerlei Programmierkenntnisse besitzen, werden Sie vermutlich kaum ein Wort verstehen. Die Frage „Kannst du bitte pullen?“ kennen Sie vielleicht aus so manchem Online-Rollenspiel, doch das Anlocken von Gegnern ist hier nicht gemeint. Daher haben wir ein kleines Wörterbuch zusammengestellt.
Repository: Der Begriff heißt übersetzt Lager oder Depot. Folglich dient ein Repository als zentrale Sammelstelle (vergleichbar mit einem Ordner) für Programmpakete und Metadaten eines Softwareprojekts.
Branch: Ein Repository unterteilt sich in einzelne Äste, sogenannte Branches. Jeder davon beschreibt eine separate Version desselben Softwareprojekts.
Commit: Haben Sie eine neue Version eines Branches fertiggestellt, committen (übergeben) Sie die Änderungen an die Versionsverwaltung. Commit ist demnach die Übergabe.
Push: Mit einem Push senden Sie alle im lokalen Branch durchführten Commits an das Repository.
Pull bzw. Pull Request: Nach einem Bugfix oder einer Implementierung einer neuen Funktion soll diese Änderung ins ursprüngliche Projekt einfließen. Dafür stellen Sie einen Pull Request, also eine Änderungsanfrage an den Administrator, der diese annehmen oder ablehnen kann.
Fork: Alle öffentlichen Repositories stehen unter Open-Source-Lizenz und lassen sich daher „gabeln“, sprich aufgreifen und innerhalb einer Fork (Gabel) in Eigenregie weiterentwickeln. Anschließend können Sie die eigene der ursprünglichen Version per Pull Request zuführen oder selbstständig weiterverbreiten.
Hostdienst und Webinterface
Git ist also eine eigenständige Software. Welche Vorteile bringt nun dieses Hub-Anhängsel? Hub bedeutet hier, dass zentrale Server bereitstehen, um Open-Source-Projekte gratis zu hosten. Das gilt zumindest für öffentliche Repositories, private hingegen sind kostenpflichtig. Für Firmen gibt es eine eigene Businesslösung, um intern die Vorzüge des sozialen Programmierens zu nutzen, ohne dass etwas nach draußen dringt.
Außerdem ist Git lediglich ein Kommandozeilen-Tool, erst GitHub verpasst der schnöden Oberfläche ein ansehnliches Webinterface. Das erhöht die Bedienungs– und Benutzerfreundlichkeit: Viele Features können Sie einfach per Mausklick ausführen, sparen sich also die Eingabe langwieriger Kommandozeilen-Befehle. Statistische Grafiken sorgen für einen runden Überblick und helfen dabei, den Verlauf des Softwareprojekts besser nachverfolgen und vorausplanen zu können.
Riesige GitHub-Community
Die Plattform ging 2008 an den Start. Nach zehn Jahren tummeln sich darauf rund 27 Millionen User aus über 200 Ländern sowie etwa 77 Millionen Repositories. Damit hat sich die Nutzerzahl innerhalb von nur drei Jahren mehr als verdoppelt und die Menge an Repositories nahezu verdreifacht — Tendenz weiter stark steigend. Und kurz vor dem 10-jährigen Jubiläum erfolgte ein weiterer Meilenstein: der 100-millionste Pull Request.
Somit hat sich schrittweise eine große Community gebildet, die wie in einem sozialen Netzwerk untereinander interagiert. So können Sie beispielsweise einzelnen Entwicklern virtuell folgen, damit Sie kein Update des jeweiligen Profils oder Projekts verpassen. Die neuesten Versionen stehen dann immer sofort zum Download bereit und laden Sie ein, ein Feedback abzugeben oder gleich selbst mitzuwirken.
Weltgrößte DDoS-Attacke
Viele Millionen Nutzer, teils streng geheime Projekte, unter anderem von Großkonzernen wie Microsoft, IBM oder Facebook — all das bietet natürlich eine entsprechend große Angriffsfläche. Das musste GitHub Ende Februar 2018 leidvoll erfahren, und zwar als Opfer der bislang größten DDoS-Attacke der Internetgeschichte.
Bei einem solchen Angriff versuchen Hacker, durch massenhafte Anfragen einen Internetdienst in die Knie zu zwingen. Das ist in diesem Fall gelungen: Sekündlich bis zu 1,35 Terabit an Daten prasselten auf die Entwicklerplattform ein, die daraufhin nicht mehr erreichbar war. Der Dienstleister Akamai eilte zu Hilfe und nach rund acht Minuten war der Spuk vorbei, Projektdatenwaren angeblich nicht in Gefahr.