Nachdem ich im gestrigen Beitrag über Git geschrieben habe, widme ich mich heute kurzerhand GitHub. Im Grunde genommen ist es ein Cloud-basierter Dienst, der Entwicklern dabei hilft, Code zu speichern und zu verwalten sowie Änderungen darin zu verfolgen und zu kontrollieren. Im Prinzip macht es ja an sich nicht viel anders als Git – Oder?
Da die Programmierung so stark auf einer exakten Syntax beruht, sind die Namenskonventionen für Programmiersprachen und Ressourcen alles andere als intuitiv. Java und JavaScript sind in etwa so eng miteinander verwandt wie Äpfel und Birnen, und das Python-Logo mag zwar ein Bild von ineinander verschlungenen Schlangen sein, aber eigentlich ist es nach „Monty Python’s Flying Circus“, einer BBC-Comedy-Serie aus den 70er Jahren benannt. Aber dies ist nur die Spitze des Eisbergs :). Für jemanden, der zum ersten Mal von Git und GitHub hört, ist die offensichtliche Verbindung vielleicht nicht ganz so offensichtlich.
Ist es nun dasselbe? Wenn nicht, sind sie in irgendeiner Weise miteinander verbunden? Oder ist die Verbindung, wie bei Java und JavaScript, nur oberflächlich?
Dies sind durchaus gerechtfertigte Fragen. Immerhin war Microsoft im Jahr 2018 bereit, 7,5 Milliarden Dollar für die Übernahme auszugeben, sodass Entwickler aller Qualifikationsstufen aufhorchen sollten. Die Wahrheit ist, dass Beiden viel enger miteinander verbunden sind als Java und JavaScript – aber mit einigen wichtigen Unterschieden, die sie voneinander unterscheiden. Nachdem ich gestern bereits über Git geschrieben habe, hier die Eigenschaften von GitHub.
Was ist GitHub?
In der Diskussion wurde oft der Vergleich gezogen, dass GitHub für Git das ist, was Facebook für das tatsächliche Gesicht ihrer Nutzer ist. Folglich ist Facebook eine Art Online-Gesichtsdatenbank und GitHub ist als Hosting-Service für Git-Repositories konzipiert.
Und was genau ist ein Git-Repository-Hosting-Dienst?
Es handelt sich um eine Online-Datenbank, mit der Git-Versionskontrollprojekte außerhalb des lokalen Computers/Servers gemeinsam genutzt werden können. Während Git lokal betrieben bzw. selbst gehosted werden muss, ist GitHub ausschließlich Cloud-basiert und ein kostenpflichtiger Dienst (Die grundlegenden Repository-Hosting-Funktionen sind kostenlos verfügbar, wenn man ein Profil erstellt ;). Was GitHub zu einer beliebten Wahl für Open-Source-Projekte macht).
Das liegt daran, dass es nicht nur alle Funktionen und Vorteile von Git bietet, sondern auch die Grundfunktionen von Git erweitert. Es bietet eine äußerst intuitive, GUI (Graphical User Interface – Grafische Benutzeroberfläche) und stellt Programmierern integrierte Kontroll- und Aufgabenverwaltungswerkzeuge zur Verfügung. Zusätzliche Funktionen können über den Marketplace-Dienst implementiert werden. Und da GitHub cloudbasiert ist, kann jede autorisierte Person von jedem Computer oder Smart-Device, ja, auch mit dem Smartphone, überall auf der Welt auf die Git-Repositories zugreifen (Vorausgesetzt, die Person verfügt über eine Internetverbindung).
Man kann darüber den eigenen Code mit anderen teilen und im Zuge der Kollaboration die Möglichkeit nutzen, Überarbeitungen an den verschiedenen Git-Zweigen vorzunehmen. Auf diese Weise können sich ganze Teams in Echtzeit in diversen Projekten abstimmen. Wenn Änderungen vorgenommen werden, werden neue Zweige erstellt, so dass das Team den Code weiter überarbeiten kann, ohne die Arbeit der anderen zu überschreiben. Diese Zweige sind wie Kopien, und die darin vorgenommenen Änderungen werden nicht in den Hauptverzeichnissen auf den Rechnern der anderen Benutzer wiedergegeben, es sei denn, die Benutzer entscheiden sich dafür, die Änderungen zu pushen (schieben) oder zu pullen (ziehen), um sie zu übernehmen. Es gibt auch eine Desktop-Anwendung, die einige zusätzliche Funktionen für erfahrene Entwickler bietet.
Es gibt auch andere Git-Repository-Hosting-Dienste wie GitLab, BitBucket und SourceForge, die allesamt brauchbare Alternativen darstellen und mit denen ich auch schon in verschiedenen Projekten gearbeitet habe. GitLab bietet sogar eine integrierte Option, mit der die Nutzer ihre Projekte direkt nach GitLab migrieren können.
Tabellarische Gegenüberstellung
Git ist eine Software. | GitHub ist ein Dienst. |
Git ist ein Befehlszeilenwerkzeug | GitHub hat eine grafische Benutzeroberfläche |
Git wird lokal auf dem System installiert | GitHub wird im Internet gehostet |
Git wird von Linux verwaltet | GitHub wird von Microsoft verwaltet. |
Git konzentriert sich auf Versionskontrolle und Code-Sharing | GitHub konzentriert sich auf das zentralisierte Hosting von Quellcode |
Git ist ein Versionskontrollsystem zur Verwaltung der Quellcode-Historie | GitHub ist ein Hosting-Dienst für Git-Repositories |
Git wurde erstmals 2005 veröffentlicht | GitHub wurde 2008 eingeführt |
Git hat keine Funktion zur Benutzerverwaltung | GitHub verfügt über eine integrierte Benutzerverwaltungsfunktion |
Git ist Open-Source-lizenziert | GitHub umfasst eine kostenlose und eine kostenpflichtige Ebene |
Git hat eine minimale externe Werkzeugkonfiguration | GitHub hat einen aktiven Marktplatz für die Integration von Tools |
Git bietet eine Desktop-Oberfläche namens Git Gui | GitHub bietet eine Desktop-Oberfläche namens GitHub Desktop |
Git konkurriert mit CVS, Azure DevOps Server, Subversion, Mercurial, etc. | GitHub konkurriert mit GitLab, Git Bucket, AWS Code Commit, usw. |
Fazit
Alles in allem ist Git ein Versionskontrollsystem, mit dem man den Quellcode verwalten und verfolgen kann. GitHub ist ein Cloud-basierter Hosting-Dienst, mit dem man die Git-Repositories verwalten kann. Wenn man ein Open-Source-Projekt hat, welches Git verwendet, dann soll es helfen, dieses einfacher zu verwalten.
Schließlich sind die Namenskonventionen in der Welt der Programmierung nicht immer intuitiv. Deshalb lohnt es sich, die Verbindungen und Unterschiede zwischen den ähnlich benannten Lösungen zu erkennen. Beide bieten Programmierern wertvolle Versionskontrollfunktionen, sodass man laufend Software erstellen kann, ohne die Befürchtung zu haben, dass alles durcheinander kommt, da viele Menschen daran arbeiten. In diesem Fall verderben viele Köche nicht wirklich den Brei. GitHub geht nur ein bisschen weiter als Git. Es bietet ein paar Funktionen mehr sowie Ressourcen wie den Online-Speicherplatz und erleichtert die Zusammenarbeit an Projekten durch eine einfach zu bedienende Benutzeroberfläche.