# GitHub

GitHub ist ein Onlinedienst zur gemeinschaftlichen (kollaborativ) Softwareentwicklung und Versionsverwaltung für Softwareprojekte. Grundlage ist die Versionsverwaltungs-Software Git. Das Unternehmen GitHub, Inc. hat seinen Sitz in San Francisco in den USA. Seit dem 26. Dezember 2018 gehört das Unternehmen zu Microsoft.

## Geschichte
### Gründung 2008

GitHub wurde von Chris Wanstrath, P. J. Hyett, Scott Chacon und Tom Preston-Werner mittels des Webframeworks Ruby on Rails und der Programmiersprache Erlang entwickelt und im Februar 2008 gestartet. Das Unternehmen GitHub, Inc. besteht seit 2007 und hat seinen Sitz in San Francisco. Im Juli 2012 erhielt GitHub eine Investition von 100 Millionen US-Dollar vom Risikokapitalgeber Andreessen Horowitz, drei Jahre später in einer weiteren Finanzierungsrunde 250 Millionen US-Dollar von Sequoia Capital, Andreessen Horowitz, Thrive Capital und anderen Venture-Capital-Fonds.

### Übernahme durch Microsoft 2018

Im Oktober 2018 wurde die Übernahme von GitHub durch Microsoft für 7,5 Milliarden Dollar von der EU-Kommission ohne Auflagen genehmigt und im Dezember 2018 abgeschlossen. Viele Software-Entwickler sahen diesen Kauf sehr kritisch und befürchteten eine nachteilige Entwicklung. Microsoft zufolge soll GitHub eine unabhängige Plattform bleiben.
GitHub übernahm 2018 die Firma Spectrum (..) und 2019 Dependabot, Pull Panda und Semmle (..).
CEO von GitHub ist der gebürtige Berliner Thomas Dohmke, der am 15. November 2021 die Leitung des Unternehmens von Nat Friedman übernahm.

### Backup im Arctic World Archive

Alle öffentlichen auf der Plattform vorhandenen Code-Repositories mit Stand zum 2. Februar 2020 werden als Teil des Arctic World Archive (AWA) in einer früheren Kohlemine auf Spitzbergen archiviert. Dafür wurden etwa 21 Terabyte Daten mit mehr als 100 Millionen Repositories auf 188 Mikrofilmrollen gespeichert. Das Archiv wird als Arctic Code Vault bezeichnet. Archiviert werden kollektive Arbeiten von fast vier Millionen Entwicklern für rund 1000 Jahre. Der Tresor enthält auch eine für Menschen lesbare Auswahl von Werken, die Software, Computer und ihre Technologien beschreiben, mit Volltextkopien von Wikipedia, Stack Overflow und anderen Datenquellen. Zweck der Archivierung ist es, Open-Source-Software – ein Eckpfeiler der Zivilisation – für künftige Generationen zu bewahren.

### Leaks

2024 wurden Leaks bei GitHub bekannt.

## Eigenschaften

Im Gegensatz zu anderen Dienstleistern zur Verwaltung quelloffener Software (englisch „open source hoster“) wie SourceForge steht auf GitHub nicht das Projekt als Sammlung von Quellcode im Zentrum, sondern der Nutzer mit seinen Quelltext-Datenbanken, den sogenannten Repositories (also Verzeichnissen, die mit der Versions-Verwaltungs Software Git verwaltet werden). Auch die Anlage (englisch „branch“) und Zusammenführung (englisch „merge“) von Abspaltungen (englisch „forks“) wird besonders hervorgehoben. Die Forks machen das Mitentwickeln bei fremden Projekten besonders einfach: Um dort einen Beitrag beizusteuern, wird das Repository zunächst abgespalten, dann werden Änderungen der Abspaltungskopie hinzugefügt, und dann dem Besitzer des Originals eine „Anfrage“ (Pull Request) gestellt, die Änderungen zu übernehmen. Da alle Schritte auch über die Weboberfläche möglich sind, ist die Bedienung von GitHub im Vergleich zu anderen Entwicklerplattformen auch für Anfänger einfach. Damit wird unter Berücksichtigung der Besonderheiten verteilter Versionskontrollsysteme ein soziales Netzwerk geschaffen, was sich auch in den aus „echten“ sozialen Netzwerken bekannten Funktionen „Beobachten“ oder „Folgen“ zeigt.
Sowohl das Erstellen öffentlich einsehbarer als auch privater — also nichtöffentlicher Repositories — ist nach einer gratis Registrierung möglich. Außerdem bietet GitHub größeren Unternehmen mit GitHub Enterprise an, eine eigene, abgetrennte GitHub-Installation zu liefern, um die Vorteile des sozialen Programmierens auch bei der unternehmensinternen Softwareentwicklung zu nutzen.
Nachdem das Design von GitHub über Jahre unverändert geblieben war, wurde im Juni 2013 eine neue Oberfläche vorgestellt. In dieser tritt der Quelltext der dort bereitgestellten Software stärker in den Vordergrund. Eine wesentliche Neuerung war eine visualisierte Statistik, welche die verwendeten Programmiersprachen und ihren Anteil am gesamten Projekt darstellt.
Seit März 2020 ist GitHub auch als Smartphone-App für iOS und Android erhältlich.

### GitHub Actions

GitHub Actions ist eine in GitHub eingebaute Unterstützung für Continuous Integration. Mit einfachen Skripten ist es möglich, das Projekt bei bestimmten Aktionen (z. B. bei neuen Pull Requests) automatisch zu bauen und, falls vorhanden, z. B. Unit Tests ausführen zu lassen. Für einfache Projekte sind damit keine eigenen Build-Server mehr erforderlich. Das Bereitstellen solcher Server war zuvor für Open-Source-Projekte wegen der Kosten und des benötigten Wartungsaufwands kaum möglich. Naturgemäß können Entwickler auf den Buildservern beliebigen Code ausführen, was in sich ein signifikantes Sicherheitsrisiko darstellt, da böswillige Benutzer versuchen können, die Server für Cryptomining oder als Teil eines Botnetzes zu missbrauchen. Es mussten daher diverse Maßnahmen implementiert werden, um solchen Missbrauch zu verhindern.

### GitHub Pages

GitHub Pages ist ein Angebot von GitHub, mit dem Nutzer statische Inhalte bereitstellen (hosten) können. Dabei sind diese Inhalte selber auch Teil eines Repositories. Genutzt werden GitHub Pages unter anderem für Blogs, Dokumentation oder Bücher.

## Verwendung

GitHub war im Jahr 2011 bei Open-Source-Software der populärste Dienst seiner Art, gemessen an der Anzahl der Codebeiträge („Commits“). Der Dienst hat über 83 Millionen registrierte Nutzer und verwaltet über 200 Millionen Repositories (Stand: August 2022). Neben vielen sehr kleinen oder oft nur vom Besitzer genutzten Projekten gibt es mehrere bekannte größere Open-Source-Projekte, die bei der Versionsverwaltung ihres Quelltextes GitHub verwenden.
Seit Mitte 2012 ist es möglich, auf GitHub auch komplette Websites bereitzustellen. Der Dienst unterstützt die Verknüpfung eines A-Records mit der IP-Adresse seiner Server und liefert statische Inhalte auf entsprechende HTTP- und HTTPS-Anfragen aus. Die Funktion ist sowohl in der Gratis- als auch der „Enterprise“-Variante des Dienstes nutzbar. GitHub Enterprise ist auch Teil des Platform as a Service, Bluemix.
Im Oktober 2016 berichtete die Zeitschrift Nature über die zunehmende Bedeutung von GitHub für den Austausch von wissenschaftlichen Daten. Im Jahr 2016 hätten ein Prozent aller Veröffentlichungen in der Informatik GitHub als Quelle zitiert, gefolgt von Mathematik und den Biowissenschaften. Eine Vergleichsstudie von 2022 kommt dennoch zu dem Schluss, Open-Source-Projekte auf dezentralen Issue-Management-Plattformen abseits GitHub würden länger gepflegt, seien noch akademischer und verzeichneten mehr Beteiligungen.
Wie ähnliche Dienste wird GitHub vermehrt zur Entwicklung industrieller öffentlicher Güter und Produkte wie beispielsweise Open Hardware oder entsprechender Schnittstellen genutzt. Dabei nimmt die Arbeit von Ehrenamtlichen neben einigen zentralen Unternehmen wie Linux und Microsoft eine flächendeckend signifikante Rolle ein, die verschiedenste Industriebranchen nutzen. Wissenschaftler plädieren daher für eine Identifikation kritischer Bereiche, die gänzlich von Freiwilligen abgedeckt werden und deshalb öffentliche Förderung zur Risikominimierung benötigen könnten.

## GitHub Copilot

GitHub Copilot ist ein KI-basiertes Tool, das in verschiedenen IDEs zur Autovervollständigung von Quelltext verwendet werden kann. Es basiert seit Ende November 2023 auf dem Sprachmodell GPT-4, das von OpenAI entwickelt wurde. Seit Anfang November 2024 ist Anthropics Claude 3.5 Sonnet zusätzlich als alternatives Sprachmodell für GitHub Copilot als „public preview“ verfügbar; weitere Modelle sollen in Zukunft folgen, unter anderem Googles Gemini 1.5 Pro.