Hvad er den største forskel mellem GitHub og Gerrit?


Svar 1:

Jeg antager, at du mener Github-applikationen, ikke webstedet (som kører appen).

Med hensyn til forskelle kan vi virkelig gruppere de fleste hosting-løsninger til git repository i to grupper: Gerrit og alt andet.

Github, gitlab, bitbucket / Stash osv. Er designet til samarbejde mellem vidt forskellige befolkninger. De fokuserer på “pull request” -modellen med ret grove kornede tilladelsesordninger (kan / kan ikke flettes, beskyttede grene osv.). Fælles for Gerrit er deres primære mål at fungere som en central "kilde til sandhed" for en distribueret VCS som git eller mercurial.

De leverer forskellige niveauer af kodevurderingsfunktioner, hvor pull-anmodningsmodellen er nogenlunde

  • Foretag ændringer på lokal filial Tryk på til fjerngren (dette kan være i en gaffel fra repoen eller hovedrepoen) Opret en anmodning om fletning / træk for at flette din filial til masterWait til revisionFikre gennemgangskommentarer og skubbe yderligere forpligtelser til fjerngrenen. Endelig flettes filial til master (eller hvor som helst) som en række forpligtelser (normalt med en fusionskommission).

Gerrit på den anden side er primært fokuseret på omfattende kodevurderingsfunktioner og kræver rutinemæssig brug af kommandoer, der normalt er anathema for git-brugere (`git pull —rebase` og` git commit —amend`). Arbejdsgangen ser mere sådan ud

  • Foretag lokale ændringer direkte på master. Forlad dem, husk den lokale githook for at tilføje et CHANGE IDSkub dem til en speciel ref (refs / for / master) snarere end master sig selv (f.eks. "Git push origin master: refs / for / master") Dette opretter en "Change request" på gerrit. Gå dertil, og tilføj korrekturlæsere. Gennemgå og opdater engagement (e) (omskriv historie ofte) Til sidst fusionerer en person med tilladelse din anmodning til masterNow, i din lokale repo, gør du en 'git pull —rebase' (forudsat at kirsebærpluk er bruges til fusion til master) til at trække dine ændringer tilbage (de fusionerede forpligtelser kan have forskellige SHA-1'er end dem, du har skubbet op).

Nettoresultatet er, at du får en renere git-historie (ingen af ​​disse "Fix review comments" forpligter).

Tilladelser til Gerrit er også meget finkornede. Du kan kontrollere alt ned til, hvem der har tilladelse til at sende positive / negative anmeldelser, og om de kan give en -2 (blokke, der fusioneres af nogen, indtil de fjernes), -1 (tommelfingeren ned), +1 (tommelfingeren op), eller + 2 (godkendelse af fusion) afstemning og så videre.

Brug af Gerrit med succes som udvikler tilføjer et andet lag med kompleksitet på toppen af ​​at lære Git. Nok, så Gerrits forfattere besluttede, at de havde brug for et klientsidesværktøj for at forenkle brugen, især når flere repos er involveret ... og det førte til oprettelsen af ​​git-repo - Git på Google


Svar 2:

"Gerrit er en Git-server, der leverer kodegennemgang / adgangskontrol på Git-lagrene"

"Gerrit leverer ikke kodebrowsing, kodesøgning, projektwiki, sporing af problemer, løbende bygninger, kodeanalysatorer, stilkontrol."

Kilde: [OFFENTLIG] Gerrit - koncepter og arbejdsgange

GitHub leverer kodegennemgang, projektledelse, integrationer, teamledelse, social kodning, dokumentation, kodehosting.

"GitHub er udviklerfirmaet. Vi gør det lettere for udviklere at være udviklere: at arbejde sammen, at løse udfordrende problemer, at skabe verdens vigtigste teknologier. Vi fremmer et samarbejdssamfund, der kan mødes - som enkeltpersoner og i teams - at skabe software fremtid og gøre en forskel i verden. "

Kilde: Byg software bedre sammen