Git, GitHub a GitLab: Ktorá možnosť je lepšia pre DevOps?

Git, GitHub a GitLab sú si veľmi podobné vo viacerých oblastiach. Okrem toho, že majú takmer rovnaký názov, sú známe aj tým, že fungujú na základe obľúbeného distribuovaného systému Git. Aké sú rozdiely medzi GitHub a GitLab a ktorá možnosť je najlepšia?

Git, GitLab a GitHub

GitLab a GitHub sú vývojové platformy zamerané na open-source systém Git, ktorý slúži na distribuovanú správu verzií. Git sa v posledných rokoch stal pomocníkom, bez ktorého si nevie predstaviť svoju prácu veľké množstvo vývojárov. Prečítaj si náš minulý článok Čo je to Git. Dôležitú úlohu zohráva v mnohých oblastiach, pričom kľúčová je najmä pre DevOps inžinierov – DevOps engineers.

Spolu s Git môžeš využívať aj ďalšie systémy, ako napríklad GitLab alebo GitHub. Obe možnosti zdieľajú niektoré funkcie, no v mnohých ohľadoch sa líšia.

GitHub – čo to je?

GitHub je internetová hostingová služba slúžiaca na vývoj softvéru a kontrolu verzií pomocou systému Git. GitHub má viacero funkcií, ako napríklad riadenie prístupu, sledovanie chýb, spravovanie úloh či nepretržitá integrácia. Vďaka tomu máš istotu, že pri jeho používaní si určite prídeš na svoje.

GitHub sa spravidla využíva ako hosting pre vývoj projektov s otvoreným zdrojovým kódom, pretože pre tento typ projektov poskytuje bezplatný webhosting. Od januára 2019 je možné prostredníctvom GitHub ukladať bezplatne aj súkromné repozitáre.

História GitHub

Vývoj platformy GitHub začali v októbri 2007 štyria vývojári – Tom Preston-Werner, Chris Wanstrath, PJ Hyett a Scott Chacon. O niekoľko mesiacov neskôr, v apríli 2008, spustili webovú stránku GitHub.com.

Jedným z najvýznamnejších používateľov systému GitHub je Microsoft. Ten ho využíva najmä pre svoje open-source projekty a vývojové nástroje, ako napríklad .Net Core, Chakra Core, MSBuild, PowerShell, PowerToys, Visual Studio Code, Windows Calculator, Windows Terminal či Microsoft Docs.

V roku 2018 kúpil Microsoft GitHub a spravil z neho jednu zo svojich dcérskych spoločností.

github repositories screenshot
Jedno z mnohých rozhraní Github – repositories.

Možnosti využitia

GitHub sa najčastejšie využíva pri vývoji softvéru, pričom podporuje viacero funkcií a formátov. Sú to:

  • Dokumentácia – systém dokumentuje všetko, čo potrebuješ vrátane automaticky poskytovaných šablón typu ReadMe.md a súborov License.md, ktoré sú v jazyku Markdown.
  • Wiki pre každý projekt – wiki sú webové stránky, ktoré umožňujú návštevníkom pridávať, upravovať a odstraňovať obsah. GitHub poskytuje takúto webovú stránku pre každý projekt.
  • Systém sledovania problémov a chýb – vďaka tomu môžeš zistiť, kde nastala chyba, a rýchlo ju opraviť.
  • História verzií – k niektorým starším verziám sa môžeš veľmi jednoducho vrátiť a obnoviť ich, prípadne sa len pozrieť, či v nich nie je chyba.
  • Označenie osoby – GitHub podporuje možnosť prihlásenia iného človeka k oznámeniam alebo zmenám. Stačí ho len spomenúť pomocou znaku @.
  • Písanie kódu pomocou AI asistentaumelá inteligencia a programovanie s Github Copilot.
  • Ďalšie funkcie – k ďalším funkciám GitHub patria:
    • diskusie,
    • emotikony,
    • hľadanie rozdielov,
    • integrácia adresárov,
    • vnorené zoznamy úloh v súboroch,
    • vizualizácia geopriestorových dát,
    • prehliadanie PDF dokumentov.

Používanie GitHub

K projektom na GitHub.com je možné pristupovať a spravovať ich pomocou štandardného príkazového riadka. GitHub taktiež umožňuje širokej verejnosti prehliadať verejné úložiská priamo na stránke a sťahovať ich. Avšak prispievať do nich môžu len registrovaní používatelia.

Hlavným cieľom GitHub je uľahčiť kontrolu verzií a sledovanie problémov pri vývoji softvéru. Na sledovanie sú k dispozícii štítky, míľniky a praktické vyhľadávanie. V rámci správy verzií umožňuje Git tzv. žiadosti na stiahnutie, prostredníctvom ktorých je možné navrhnúť zmeny zdrojového kódu.

Používatelia, ktorí majú možnosť skontrolovať navrhované zmeny, môžu vidieť rozdiel medzi súčasným stavom a požadovanými zmenami a návrh schváliť.

Typy GitHub

Keď sa rozhodneš pre GitHub, musíš si vybrať jeden z typov, ktorý je k dispozícii:

  • GitHub Free – bezplatná verzia, ktorá je vhodná najmä v prípade programovania pre začiatočníkov. Dôvodom je skutočnosť, že verzia je pomerne obmedzená a neobsahuje všetko, čo by mohol vyžadovať napríklad Java programátor senior.
  • GitHub Team – platená verzia, ktorá je vhodná pre jednotlivcov a organizácie. Ide o zlatú strednú cestu vhodnú aj pre pokročilých.
  • GitHub Enterprise – najdrahšia, no taktiež najširšia alternatíva, ktorá obsahuje všetko, čo verzia Free a Team plus niečo navyše. Je vhodná pre veľké firmy a tých, ktorým nestačí GitHub Team.

Zaujímavosť

Podľa najnovších údajov a štatistík mal GitHub k januáru 2023 viac ako 100 miliónov používateľov.

GitLab – čo to je?

GitLab je softvérový balík DevOps, ktorý dokáže vyvíjať, zabezpečovať a prevádzkovať softvér. Funguje veľmi podobne ako GitHub, čo znamená, že poskytuje hosting pre vývoj projektov s otvoreným zdrojovým kódom. Okrem toho umožňuje, aby sa jeho softvér používal aj na serveroch tretích strán.

gitlab screenshot
Gitlab 15.10

História GitLab

Spoločnosť GitLab Inc. založili v roku 2014 dvaja vývojári – Dmitriy Zaporozhets a Sytse Sijbrandij. Jej cieľom bolo pokračovať vo vývoji platformy určenej na zdieľanie kódu, ktorú v roku 2011 spustil Dmitriy Zaporozhets.

GitLab poskytuje svoju platformu ako freemium službu. V praxi to znamená, že základný produkt sa poskytuje bezplatne, no jeho rozšírené verzie sú platené.

Vedel si, že...

plat programátora môže byť vyšší ako 2 000 eur? Ak by si sa teda chcel uplatniť v IT oblasti, spravíš dobre, keď okrem programovacieho jazyka budeš ovládať aj systém GitLab alebo GitHub.

Možnosti využitia

Základnou používateľskou funkciou GitLab je vizuálny systém správy úložiska Git, ktorý vývojárom umožňuje prehliadať, kontrolovať, spájať a vykonávať jednoduché aj pokročilé každodenné úlohy.

Prevažnú časť používateľského prostredia poháňa Ruby on Rails. Ten spúšťa úlohy prostredníctvom fondu úloh na serveri Redis do backendového pomocníka s názvom GitLab Runner napísaného v jazyku Go.

GitLab taktiež ponúka široký sortiment pluginov a integrácii, vďaka čomu si ho môžeš rozšíriť a prispôsobiť presne podľa svojich potrieb.

Ďalšou výhodou je tiež to, že open-source licencia ti dáva možnosť spúšťať kópiu GitLab Community Edition (CE) na svojich serveroch, či už v cloude, alebo lokálne.

K ďalším funkciám GitLabu patria napríklad:

  • praktické tímové plánovanie,
  • vytváranie kontrolných zoznamov,
  • používanie emoji,
  • využívanie predpripravených šablón,
  • diskusie s ostatnými členmi tímu,
  • filtre na filtrovanie aktivity,
  • sledovanie zmien,
  • štítky,
  • míľniky,
  • uzamknutie diskusie,
  • predvídanie duplicitného problému,
  • tvorba zoznamu úloh,
  • sledovanie času.

Používanie GitLab

Hlavnou výhodou GitLab je to, že umožňuje všetkým členom tímu pracovať na každej fáze projektu spoločne, a to bez toho, aby boli na jednom mieste. GitLab okrem toho umožňuje aj sledovanie zmien, plánovanie a ďalšie úkony, vďaka čomu môžu vývojári automatizovať celý životný cyklus DevOps a dosiahnuť tie najlepšie výsledky.

Celý proces používania GitLab je rýchly a jednoduchý. Problém s ním nebudú mať ani začiatočníci, ktorí s podobným systémom ešte nepracovali.

Typy GitLab

Pre vývojárov sú v súčasnosti k dispozícii tri alternatívy. Sú to:

  • GitLab Free – bezplatné riešenie pre tých, ktorí s programovaním v Java alebo v inom programovacom jazyku ešte len začínajú, prípadne tých, ktorým stačí ohraničená verzia so zopár funkciami.
  • GitLab Premium – platená alternatíva pre menšie tímy a vývojárov, ktorí potrebujú rozšírené funkcie.
  • GitLab Ultimate – najdrahšia alternatíva, ktorá poskytuje aj najviac funkcií a možností. Je vhodná pre veľké tímy a spoločnosti, prípadne pre veľmi náročných vývojárov.

Rozdiely medzi GitHub a GitLab

To, ako jednotlivé systémy fungujú, aké majú vlastnosti a aké alternatívy sú k dispozícii, už vieš. Aby si si však mohol vybrať správne, musíš poznať najväčšie rozdiely, ktoré medzi GitLab a GitHub sú. Všetky sme ich pre teba spísali.

Nástroje CI/CD

Systém GitLab je známy tým, že má vstavanú nepretržitú integráciu, resp. nepretržité doručovanie, po anglicky Continuous integration and continuous delivery (CI/CD), a pracovné postupy DevOps.

GitHub je na tom inak. Hoci ti umožňuje pracovať s nástrojmi CI/CD podľa tvojho výberu, no budeš musieť s nimi interagovať samostatne. Používatelia GitHubu spravidla pracujú s programom CI tretej strany, ako napríklad Jenkins, CircleCI alebo TravisCI.

Zlučovanie vetiev vďaka GitHub a GitLab

GitHub podporuje zlúčenie nových vetiev s hlavnou vetvou. Vďaka tomu si vždy pripravený na rýchle nasadenie a v prípade, že sa niečo pokazí, môžeš v sekunde obnoviť svoju starú verziu.

V rámci GitLab tvoríš viacero samostatných vetiev pre každý set zmien. Tieto samostatné vetvy sú vždy nad rámec hlavnej vetvy. Hoci viacvetvový systém nie je zlý, no vyžaduje si viacstupňový testovací proces. Jedna kontrola kódu pri žiadosti o zlúčenie nestačí.

GitHub, GitLab a integrácia s nástrojmi

Ďalším rozdielom je to, že GitLab ti ponúka kompletné riešenie vývoja softvéru a umožňuje integráciu s niektorými programami a platformami. K nim patria napríklad Jira, Microsoft Teams, Slack či Gmail.

GitHub poskytuje menej služieb v rámci svojho vlastného programu, no na druhej strane ponúka možnosti integrácie s mnohými externými programami. Mnohé z nich nájdeš v GitHub Marketplace.

Cena

Rozdiel medzi GitLab a GitHub predstavujú aj ceny za ich prémiové alternatívy.

Ceny za GitHub:

  • GitHub Team – 44 dolárov za jedného používateľa na rok
  • GitHub Enterprise – 231 dolárov za jedného používateľa na rok

Ceny za GitLab:

  • GitHub Premium – 19 dolárov za jedného používateľa na mesiac
  • GitHub Ultimate – 99 dolárov za jedného užívateľa na mesiac

Pri výbere jednej z možností by si však cenu mal brať ako posledný rozhodujúci faktor. Najdôležitejšie je, aby ti systém vyhovoval funkciami a spôsobom, akým pracuje. Na začiatok preto spravíš dobre, keď vyskúšaš obe možnosti v ich bezplatných verziách, a až následne sa rozhodneš.

V čom sú GitLab a GitHub rovnaké?

GitLab a GitHub majú aj niekoľko rovnakých vlastností. Oba systémy majú napríklad rozhranie príkazového riadka pre pokročilých vývojárov a ponúkajú aj webové rozhranie pre nových programátorov.

Zaujímavosťou je, že zatiaľ čo obe riešenia podporujú open-source, používajú zmiešaný programovací model. GitLab využíva open-source len v prípade bezplatnej verzie GitLab Community Edition. Platená verzia GitLab Enterprise Edition nie je open-source a prichádza s viacerými funkciami a podporou.

Kód systému GitHub obsahuje open-source kód, no vo všeobecnosti nejde o open-source projekt.

Aj napriek všetkému spomínanému poskytujú oba systémy webové úložiská s otvoreným zdrojom a umožňujú lokálne zmeny súborov so vzdialeným úložiskom.

Následne netreba zabúdať ani na to, že GitLab a GitHub sú rovnaké v tom, že využívajú ako základ open-source systém Git.

Vyber si jeden zo systémov a získaj prácu snov

Základné či pokročilé znalosti systému Gitlab alebo GitHub ti dokážu rozšíriť obzory a otvoriť dvere k práci snov. Preštuduj si dostupné zdroje, ako napríklad články, e-booky či videá a zisti, ako vyvíjať softvér rýchlo a jednoducho. A ak by si mal záujem o prácu v IT oblasti, prezri si naše voľné pracovné miesta.

Daj nám o sebe vedieť