Programmering

GitHub vs Bitbucket vs GitLab: En episk kamp om udviklerens mindshare

Det er den slags metaforestilling, der får grundlæggende filosoffer til at sige "Whoa!" Software i dag er så kompliceret, at vi har brug for at skrive software til at hjælpe os med at forstå og konstruere den software, vi har brug for at skrive. Kode skaber kode skaber mere kode ...

Kodelageret med navnet Git er alles yndlingsværktøj til kuratering af software, men selv denne pæne open source-software er ikke nok. De fleste programmører og de hold, som de tilhører, er nu bundet til onlineversioner af Git, der tilføjer mange ekstra lag med analyse og præsentation for at gøre det muligt at vade gennem det store sump, der er vores kode.

Der er tre store udbydere nu til det bedste sted at opbevare dine regulære udtryk, anonyme funktioner og intense rekursive trævandrende blink af geni: GitHub, Bitbucket og GitLab. Alle konkurrerer om at være det bedste sted for dig at gemme din kilde.

Er den ene bedre end den anden? Er et det bedste sted for dit team at prale fantastisk-nocity? Lad os sætte dem mod hinanden og se, hvilken der hersker.

GitHub er størst

Måske er det fordi det var det første store websted, der specialiserede sig i hosting af Git-arkiver. Måske er det på grund af dets gode værker i open source-samfundet. Under alle omstændigheder er GitHub førende, hvis du bruger metricen af ​​ren rapporteret volumen af ​​kode. GitHub hævder 28 millioner brugere og 85 millioner arkiver. Bitbucket rapporterer seks millioner brugere, og GitLab er et mysterium, der ikke reagerede på spørgsmålet.

Nogle synes, det betyder noget. Open source-udviklere, der kan lide at springe mellem projekter, kan bruge et login og linke alt deres arbejde. Alle kan følge hotte udviklere på GitHub ligesom katteelskere følger skaberne af de bedste kattevideoer på YouTube. Netværkseffekterne, der ser ud til at dominere Internettet, skubber GitHub langt i spidsen.

Andre er ikke så sikre. Ja, de kan godt lide at linke deres offentlige kode, men mange mennesker ønsker ikke at linke det arbejde, de udfører for klienter. Det skal være adskilt og ikke-offentligt. I den sammenhæng er netværkseffekterne ikke meget værd.

Bitbucket og GitLab er billigere

Alle tre tjenester tilbyder mange gratis muligheder, men alle tjener deres penge ved at opkræve udviklere, normalt fagfolk, for at være vært for private projekter. GitHub starter ved $ 7 pr. Måned pr. Udvikler. Bitbucket starter ved $ 2 pr. Måned og GitLab starter ved $ 4 pr. Måned.

Men disse tal er bare grove guider, fordi der er en god chance for, at du vil opgradere. Et bedre niveau på Bitbucket koster $ 5 pr. Måned. GitLab har en premiumversion, der koster $ 19 pr. Måned - og du skal betale årligt for at få den pris.

Der er næsten helt sikkert skjulte rabatter for virksomheder med større hold, og disse gør det svært at sammenligne. Du tror måske, at Git-hosting er en vare, men disse virksomheder har fundet måder at tilføje så mange ekstra funktioner, at dit hoved begynder at dreje, når du begynder at sammenligne, hvad du får for dine penge.

Bitbucket og GitLab tillader ubegrænsede private arkiver

Hvad du får gratis er vildt anderledes. Både Bitbucket og GitLab giver dig mulighed for at gemme dine egne private opbevaringssteder gratis. Du begynder kun at betale, når dit team vokser og bliver mere professionelt. GitHub gemmer kun dine projekter gratis, hvis du er studerende, eller hvis du offentliggør projekterne. Det er fantastisk til open source, men ikke til alle dine private sideprojekter.

Disse gratis niveauer kan være ret generøse. Bitbucket tillader små hold på op til fem samarbejdspartnere. GitLab tillader ubegrænsede samarbejdspartnere.

Det er værd at bemærke, at disse priser og niveauer er for den cloudhostede version. Hvis du vil være vært for selv, kan det være billigere. Der er også akademiske planer og open source community-versioner, der er meget generøse.

Bitbucket og GitLab har kontinuerlig integration

Disse virksomheder udvider sig ved ikke kun at gemme koden, men også bygge og implementere den. GitLab har rullet ind i Jenkins-baseret kontinuerlig integration og derefter tilføjet implementeringsstøtte og overvågning i en god loop. Du kan begå din kode, implementere den, overvåge den og derefter begynde at planlægge det næste sæt ændringer uden at forlade GitLab.

Tilsvarende tilbyder Bitbucket Pipelines, et lignende build- og implementeringsværktøj, der gør meget det samme med et par klik. Måske tilbyder det ikke så meget overvågning, men det er tæt integreret med Amazons sky.

GitHub giver dig mulighed for at bruge din egen kontinuerlige integrationsserver

Bygger GitHub-brugere nogensinde deres kode? Selvfølgelig. Mange bruger tredjepartsværktøjer som CircleCI eller Travis CI, der udløses af forpligtelser til GitHub. Nogle er endda vært for deres egen version af Jenkins, som er tilgængelig fra et open source-arkiv hostet på GitHub.

Tredjepartsværktøjerne er naturligvis muligvis ikke under den samme virksomhedsparaply, men de opnår stort set det samme. Og så kan undertiden adskillelsen være en fordel, hvis du vil gøre tingene lidt anderledes.

Det er værd at bemærke, at der heller ikke er noget, der forhindrer dig i at rulle din egen kontinuerlige integrationsløsning med Bitbucket eller GitLab. De tjekker bare koden som enhver anden Git-klient.

Med GitLab kan du udvikle dig online

Hvad der begyndte som et værktøj til at lade dig gennemse statisk kode, forvandles langsomt til en fuldgyldig platform til udvikling. GitLabs interface vokser mere og mere kompleks og begynder at nærme sig det, virksomheden kalder et integreret udviklingsmiljø eller IDE. Det er ikke så sofistikeret som nogle af de desktopcentrerede monolitter som Eclipse eller Xcode, der tilbyder integreret fejlretning, men det betyder ikke, at du ikke kan bruge det til at gøre mere og mere sofistikeret udvikling med rene, multi-fil-forpligtelser.

Både GitHub og Bitbucket har enklere versioner, der giver dig mulighed for at redigere dine filer online og derefter begå resultatet. De er bedre til hurtige touch-ups og rettelser.

Bitbucket har kodebevidst søgning

Det kan virke som en lille ting, men Bitbucket's søgealgoritme forstår mange af de største sprog, hvilket gør det muligt at rangere resultaterne. Definitionen af ​​en funktion eller en variabel dukker op øverst, og anvendelserne følger. Hvis du prøver at finde ud af, hvad nogle søgeord gør, behøver du ikke at rulle gennem sider med resultater for at finde svaret.

Bitbucket kommer fra det samme firma, der fremstiller Jira

Jira er et af de førende værktøjer til at organisere udviklingsprocessen ved at spore billetter og holde holdene opmærksomme på, hvem der gør hvad med hvilket arkiv, og hvornår de afslutter det. Jira kan integreres med alle, men ejes af Atlassian, hvilket sørger for, at Jira fungerer godt med Bitbucket.

Både GitHub og GitLab har deres egne værktøjer til sporing af problemer, der er indbygget i arbejdsgangen, der stort set gør det samme. For flere klokker og fløjter kan GitHub- og GitLab-brugere henvende sig til Jira eller et hvilket som helst af et antal lignende værktøjer.

GitLab er open source

Hvis du ikke kan lide nogen bestemt del af GitLab, kan du bare downloade Ruby-kildekoden, ændre den og være vært for den selv. Det er open source og bare venter på, at du forkaster det. GitHub tilbyder nogle nyttige stykker af sit puslespil i sine opbevaringssteder, og Atlassian tilbyder generøs support til alle open source-projekter ved hjælp af godkendte licenser. Men GitLab giver dig den rå kode til hele platformen i en community-udgave.

Der er også flere andre open source Git-serverprojekter, som Gitblit, skrevet i Java, Allura, skrevet i Python og Gogs, skrevet i Go. Men du bliver nødt til at være vært for dem alle.

GitLab er tæt integreret med Google Cloud

Du behøver ikke bruge Google Cloud med GitLab. GitLab gør det bare lidt lettere ved at integrere med Google Kubernetes Engine. Bare et par klik flytter din kode til en kørende containerklynge. Selvom du ikke bruger Google Kubernetes Engine, kan GitHub stadig lide at arbejde med Kubernetes. Hvis du distribuerer til en Kubernetes-klynge, kan du overvåge alt - CI-miljøer, implementeringer, pods og Kubernetes-metrics - lige fra GitLab.

Bitbucket integreres med AWS

Igen kan du altid distribuere din kode, hvor du vil, men en Bitbucket-tilføjelse på Atlassian Marketplace vil skubbe din kode ind i en Amazon S3-spand og bruge AWS CodeDeploy til at køre den på EC2. Alt du skal gøre er at konfigurere det en gang, og det er klar til brug.

Bitbucket har mange udvidelser

AWS CodeDeploy-appen er ikke den eneste mulighed på Atlassian-markedet. I skrivende stund er der 304 apps skrevet af tredjeparter for at udvide Bitbucket. Nogle tilføjer funktioner som meddelelser eller grafer over forpligtelser, og andre hjælper med projektoprydning ved at spore arbejdsgangen. Hvis du føler dig bossig, kan du installere plugin-programmet Commit Policy, der gennemgår forpligtelsesmeddelelserne for at sikre, at de nævner nummer og andre detaljer. Hvis du ikke kan se, hvad du vil have på Marketplace, kan du skrive din egen.

Git (almindelig) er gratis og privat

Der vil være nogle, der ikke ønsker at bruge nogen af ​​disse luksuriøse muligheder. Git er et ret simpelt kommandolinjeværktøj med masser af kommandoer til at grave i repositorierne selv. Du kan skubbe, trække og spore koden på egen hånd ved hjælp af kommandolinjen. Hvis du er god til at huske kommandolinjeanvisningerne, og du ikke vil have nogen af ​​de pæne, webbaserede skærme med kode, diffs og mere, vil almindelig gammel Git tjene dig godt.

Brug to eller alle tre!

Det kan virke som for stort, men der er ingen grund til, at du kun skal vælge en. Git gør det nemt at skubbe forpligtelser opstrøms, og der er ingen grund til, at du ikke kan tilføje flere opstrøms. Hvis du har brug for funktioner fra to eller alle disse tre platforme, kan du bare konfigurere dine arkiver til at skubbe til dem alle. Hvis du er heldig, kan du blive inde i de gratis niveauer. Og hvis du ikke er det, er de ikke for dyre.