GitHub vs. Bitbucket vs. GitLab: Ein epischer Kampf um Entwickler-Mindshare

Es ist die Art von Meta-Begriff, die Studentenphilosophen dazu bringt, zu sagen: "Whoa!" Software ist heute so kompliziert, dass wir Software schreiben müssen, um die Software, die wir schreiben müssen, zu verstehen und zu konstruieren. Code erzeugt Code erzeugt mehr Code…

Das Code-Repository mit dem Namen Git ist das beliebteste Tool für die Kuratierung von Software, aber selbst diese nette Open-Source-Software reicht nicht aus. Die meisten Programmierer und die Teams, denen sie angehören, sind jetzt mit Online-Versionen von Git verbunden, die viele zusätzliche Analyse- und Präsentationsebenen hinzufügen, um es zu ermöglichen, durch den riesigen Sumpf zu waten, der unser Code ist. 

Es gibt jetzt drei große Kandidaten für den besten Ort, um Ihre regulären Ausdrücke, anonymen Funktionen und intensiven rekursiven Baumwanderungen zu verbergen: GitHub, Bitbucket und GitLab. Alle konkurrieren darum, der beste Ort für Sie zu sein, an dem Sie Ihre Quelle speichern können.

Ist einer besser als der andere? Ist einer der besten Orte für Ihr Team, um unglaubliche Schnelligkeit zu prägen? Lassen Sie uns sie gegeneinander antreten und sehen, welche Regeln gelten.

GitHub ist am größten

Vielleicht liegt es daran, dass es die erste große Website war, die sich auf das Hosten von Git-Repositories spezialisiert hat. Vielleicht liegt es an seinen guten Arbeiten in der Open Source Community. In jedem Fall ist GitHub führend, wenn Sie die Metrik des bloßen gemeldeten Codevolumens verwenden. GitHub beansprucht 28 Millionen Benutzer und 85 Millionen Repositories. Bitbucket meldet sechs Millionen Benutzer und GitLab ist ein Rätsel, das die Frage nicht beantwortet hat.

Einige denken, dass dies wichtig ist. Open Source-Entwickler, die gerne zwischen Projekten wechseln, können sich mit einem Login anmelden und ihre gesamte Arbeit verknüpfen. Jeder kann heißen Entwicklern auf GitHub folgen, so wie Katzenliebhaber den Machern der besten Katzenvideos auf YouTube folgen. Die Netzwerkeffekte, die das Internet zu dominieren scheinen, bringen GitHub weit in Führung.

Andere sind sich nicht so sicher. Ja, sie verknüpfen gerne ihren öffentlichen Code, aber viele Menschen möchten ihre Arbeit für Kunden nicht verknüpfen. Das sollte getrennt und nicht öffentlich sein. In diesem Zusammenhang sind die Netzwerkeffekte nicht viel wert.

Bitbucket und GitLab sind billiger

Alle drei Dienste bieten viele kostenlose Optionen, aber alle verdienen ihr Geld, indem sie Entwicklern, normalerweise Fachleuten, die Möglichkeit geben, private Projekte zu hosten. GitHub kostet ab 7 US-Dollar pro Monat und Entwickler. Bitbucket kostet ab 2 US-Dollar pro Monat und GitLab ab 4 US-Dollar pro Monat.

Diese Zahlen sind jedoch nur grobe Anhaltspunkte, da die Wahrscheinlichkeit groß ist, dass Sie ein Upgrade durchführen möchten. Eine bessere Stufe bei Bitbucket kostet 5 USD pro Monat. GitLab hat eine Premium-Version, die 19 US-Dollar pro Monat kostet - und Sie müssen jährlich zahlen, um diesen Preis zu erhalten.

Es gibt mit ziemlicher Sicherheit versteckte Rabatte für Unternehmen mit größeren Teams, die einen Vergleich erschweren. Sie mögen denken, dass Git-Hosting eine Ware ist, aber diese Unternehmen haben Möglichkeiten gefunden, so viele zusätzliche Funktionen hinzuzufügen, dass sich Ihr Kopf dreht, wenn Sie vergleichen, was Sie für Ihr Geld bekommen.

Bitbucket und GitLab ermöglichen unbegrenzte private Repositorys

Was Sie kostenlos bekommen, ist ganz anders. Sowohl mit Bitbucket als auch mit GitLab können Sie Ihre eigenen privaten Repositories kostenlos speichern. Sie zahlen erst, wenn Ihr Team wächst und professioneller wird. GitHub speichert Ihre Projekte nur dann kostenlos, wenn Sie Student sind oder die Projekte veröffentlichen. Das ist großartig für Open Source, aber nicht für alle Ihre privaten Nebenprojekte.

Diese freien Ebenen können ziemlich großzügig sein. Bitbucket ermöglicht kleine Teams mit bis zu fünf Mitarbeitern. GitLab erlaubt unbegrenzte Mitarbeiter.

Es ist erwähnenswert, dass diese Preise und Stufen für die Cloud-gehostete Version gelten. Wenn Sie sich selbst hosten möchten, kann es billiger sein. Es gibt auch akademische Pläne und Open-Source-Community-Versionen, die sehr großzügig sind.

Bitbucket und GitLab sind kontinuierlich integriert

Diese Unternehmen expandieren, indem sie den Code nicht nur speichern, sondern auch erstellen und bereitstellen. GitLab hat die Jenkins-basierte kontinuierliche Integration eingeführt und anschließend die Bereitstellungsunterstützung und -überwachung in einer positiven Schleife hinzugefügt. Sie können Ihren Code festschreiben, bereitstellen, überwachen und dann mit der Planung der nächsten Änderungen beginnen, ohne GitLab zu verlassen.

In ähnlicher Weise bietet Bitbucket Pipelines an, ein ähnliches Tool zum Erstellen und Bereitstellen, das mit wenigen Klicks fast dasselbe tut. Vielleicht bietet es nicht so viel Überwachung, ist aber eng in die Cloud von Amazon integriert.

Mit GitHub können Sie Ihren eigenen Continuous Integration Server verwenden

Erstellen GitHub-Benutzer jemals ihren Code? Na sicher. Viele verwenden Tools von Drittanbietern wie CircleCI oder Travis CI, die durch Commits an GitHub ausgelöst werden. Einige hosten sogar ihre eigene Version von Jenkins, die in einem Open-Source-Repository verfügbar ist, das bei GitHub gehostet wird.

Die Tools von Drittanbietern befinden sich möglicherweise nicht unter demselben Unternehmensdach, aber sie leisten fast das Gleiche. Und dann kann die Trennung manchmal von Vorteil sein, wenn Sie die Dinge etwas anders machen möchten.

Es ist erwähnenswert, dass Sie nichts daran hindert, Ihre eigene kontinuierliche Integrationslösung mit Bitbucket oder GitLab zu entwickeln. Sie checken den Code einfach wie jeder andere Git-Client aus.

Mit GitLab können Sie online entwickeln

Was als Tool zum Durchsuchen von statischem Code begann, verwandelt sich langsam in eine vollwertige Entwicklungsplattform. Die Benutzeroberfläche von GitLab wird immer komplexer und nähert sich allmählich dem, was das Unternehmen als integrierte Entwicklungsumgebung oder IDE bezeichnet. Es ist nicht so ausgefeilt wie einige der Desktop-zentrierten Monolithen wie Eclipse oder Xcode, die integriertes Debugging bieten, aber das bedeutet nicht, dass Sie es nicht verwenden können, um mit sauberen Commits mit mehreren Dateien eine immer ausgefeiltere Entwicklung durchzuführen.

Sowohl GitHub als auch Bitbucket haben einfachere Versionen, mit denen Sie Ihre Dateien online bearbeiten und dann das Ergebnis festschreiben können. Sie eignen sich besser für schnelle Nachbesserungen und Korrekturen.

Bitbucket hat eine Code-fähige Suche

Es mag wie eine Kleinigkeit erscheinen, aber der Suchalgorithmus von Bitbucket versteht viele der wichtigsten Sprachen und ermöglicht es, die Ergebnisse zu ordnen. Die Definition einer Funktion oder einer Variablen wird oben angezeigt, und die Verwendungen folgen. Wenn Sie herausfinden möchten, was ein Keyword bewirkt, müssen Sie nicht durch die Ergebnisseiten scrollen, um die Antwort zu finden.

Bitbucket stammt von derselben Firma, die Jira herstellt

Jira ist eines der führenden Tools zur Organisation des Entwicklungsprozesses, indem Tickets verfolgt und Teams darüber informiert werden, wer was mit welchem ​​Repository macht und wann sie es beenden. Jira kann in alle integriert werden, gehört jedoch Atlassian, wodurch sichergestellt wird, dass Jira gut mit Bitbucket zusammenarbeitet.

Sowohl GitHub als auch GitLab verfügen über eigene Tools zur Problemverfolgung, die in den Workflow integriert sind und fast dasselbe tun. Für mehr Schnickschnack können sich GitHub- und GitLab-Benutzer an Jira oder eine Reihe ähnlicher Tools wenden.

GitLab ist Open Source

Wenn Ihnen ein bestimmter Teil von GitLab nicht gefällt, können Sie einfach den Ruby-Quellcode herunterladen, ändern und selbst hosten. Es ist Open Source und wartet nur darauf, dass Sie es teilen. GitHub bietet einige nützliche Puzzleteile in seinen Repositories an, und Atlassian bietet großzügige Unterstützung für alle Open Source-Projekte mit genehmigten Lizenzen. GitLab bietet Ihnen jedoch den Rohcode für die gesamte Plattform in einer Community-Edition.

Es gibt auch mehrere andere Open-Source-Git-Server-Projekte, wie Gitblit, geschrieben in Java, Allura, geschrieben in Python und Gogs, geschrieben in Go. Aber du musst sie alle hosten.

GitLab ist eng in Google Cloud integriert

Sie müssen Google Cloud nicht mit GitLab verwenden. GitLab macht es durch die Integration in die Google Kubernetes Engine nur ein bisschen einfacher. Mit nur wenigen Klicks wird Ihr Code in einen laufenden Containercluster verschoben. Auch wenn Sie Google Kubernetes Engine nicht verwenden, arbeitet GitHub gerne mit Kubernetes. Wenn Sie in einem Kubernetes-Cluster bereitstellen, können Sie alles - CI-Umgebungen, Bereitstellungen, Pods und Kubernetes-Metriken - direkt von GitLab aus überwachen.

Bitbucket lässt sich in AWS integrieren

Auch hier können Sie Ihren Code jederzeit bereitstellen, wo immer Sie möchten. Ein Bitbucket-Add-On auf dem Atlassian Marketplace schiebt Ihren Code jedoch in einen Amazon S3-Bucket und verwendet AWS CodeDeploy, um ihn auf EC2 auszuführen. Alles was Sie tun müssen, ist es einmal zu konfigurieren und es ist bereit zu gehen.

Bitbucket hat viele Erweiterungen

Die AWS CodeDeploy-App ist nicht die einzige Option auf dem Atlassian-Markt. Zum jetzigen Zeitpunkt gibt es 304 Apps, die von Dritten geschrieben wurden, um Bitbucket zu erweitern. Einige fügen Funktionen wie Benachrichtigungen oder Diagramme von Commits hinzu, andere helfen bei der Projektverwaltung, indem sie den Workflow verfolgen. Wenn Sie sich herrisch fühlen, können Sie das Commit-Richtlinien-Plug-In installieren, das die Commit-Nachrichten überprüft, um sicherzustellen, dass sie Ausgabenummern und andere Details enthalten. Wenn Sie auf dem Marktplatz nicht sehen, was Sie wollen, können Sie Ihre eigenen schreiben.

Git (normal) ist kostenlos und privat

Es wird einige geben, die keine dieser luxuriösen Optionen nutzen möchten. Git ist ein ziemlich einfaches Befehlszeilen-Tool mit vielen Befehlen zum Durchsuchen der Repositorys. Über die Befehlszeile können Sie den Code selbst verschieben, ziehen und verfolgen. Wenn Sie sich gut Befehlszeilenanweisungen merken können und keine der netten, webbasierten Anzeigen von Code, Diffs und mehr wünschen, ist der einfache alte Git eine gute Wahl.

Verwenden Sie zwei oder alle drei!

Es mag wie ein Overkill erscheinen, aber es gibt keinen Grund, warum Sie nur einen auswählen müssen. Git macht es einfach, Commits in den Upstream zu verschieben, und es gibt keinen Grund, warum Sie nicht mehrere Upstreams hinzufügen können. Wenn Sie Funktionen von zwei oder allen drei dieser Plattformen benötigen, können Sie Ihre Repositorys einfach so konfigurieren, dass sie auf alle übertragen werden. Wenn Sie Glück haben, können Sie in den freien Ebenen bleiben. Und wenn nicht, sind sie nicht zu teuer.