
Java programátor expert
Git a GitHub sú služby, s ktorými sa pri programovaní určite stretneš. Git sa v priebehu rokov stal celosvetovým štandardom určeným pre správu verzií, ktorý využívajú milióny ľudí. Čo to však znamená v praxi a aké výhody ti táto služba môže priniesť?
Git je distribuovaný systém na správu verzií, ktorý sleduje zmeny v akejkoľvek súprave počítačových súborov. Zvyčajne sa využíva na koordináciu práce medzi viacerými programátormi, ktorí pracujú na vývoji nejakého softvéru. Git zaisťuje vývojárom rýchlosť, jednoduchú prácu a podporu distribuovaných, nelineárnych pracovných tokov.
To, že je Git distribuovaný systém znamená, že klon projektu predstavuje kompletné úložisko správy verzií. Vďaka tomu dokáže Git uľahčiť prácu nielen vývojárom, ktorí sa nachádzajú na jednom mieste, ale aj tým, ktorí pracujú vzdialene.
Vývojári po každej úprave synchronizujú svoju kópiu s kópiou na serveri, čo zaisťuje, že bude k dispozícii aj pre ďalších členov tímu pracujúcich na danom projekte. Ostatní developeri môžu okrem toho sledovať aj kompletnú históriu a ostatné uložené verzie.
Obľuba Gitu rástla posledné roky najmä kvôli flexibilite, ktorú poskytuje. Okrem toho je populárny aj vďaka skutočnosti, že je bezplatným softvérom s otvoreným zdrojovým kódom a distribuuje sa iba pod licenciou GPL-2.0.
GPL je všeobecná verejná licencia, ktorá koncovým používateľom zaručuje štyri výhody – spúšťať, študovať, zdieľať a upravovať softvér. Napísal ju Richard Stallman v roku 1989.
História Gitu siaha do roku 2005. V tomto období prestali mnohí vývojári využívať program BitKeeper, ktorý bol obľúbený od roku 2002. Dôvodom boli najmä problémy s autorskými právami.
Jeden z vývojárov, Linus Torvalds, hľadal distribuovaný systém, ktorý by mohol používať rovnako ako BitKeeper. Žiadny z dostupných bezplatných systémov však nespĺňal jeho potreby.
Torvalds mal presné požiadavky, ktoré musel systém spĺňať. Jednou z nich bolo, že oprava by v rámci systému nemala trvať dlhšie ako tri sekundy a systém by mal podporovať podobný pracovný postup, ako má BitKeeper.
Keďže Torvaldsove požiadavky nesplnil ani jeden softvér, ktorý našiel, rozhodol sa, že napíše svoj vlastný. Vývoj Gitu začal 3. apríla 2005, pričom prvé testovanie prebehlo už 29. apríla 2005.
Po otestovaní Gitu odovzdal Torvalds údržbu Gitu Juniovi Hamanovi, hlavnému prispievateľovi projektu, ktorý bol následne zodpovedný za vydanie verzie 1.0. Tá uzrela svetlo sveta 21. decembra 2005.
… Linus Torvalds pomenoval Git po sebe? Git totiž v britskej angličtine znamená „nepríjemná osoba”. Torvalds k tomu raz povedal: „Som egoista a všetky svoje projekty pomenúvam po sebe. Najprv Linux, teraz Git.”
Vždy, keď Git použiješ a uložíš nejaké zmeny, systém vytvorí potvrdenie. Potvrdenie predstavuje snímku všetkých súborov v danom okamihu. Každé potvrdenie vytvára odkazy na ďalšie potvrdenie, čím sa tvorí prehľadný a praktický graf histórie vývoja.
Vďaka histórii vývoja máš možnosť kedykoľvek sa vrátiť k predchádzajúcej verzii, skontrolovať ju a zistiť napríklad, kde nastala chyba.
Práca v Git prebieha na základe takzvaných vetví. Každý vývojár má svoju vlastnú vetvu, čiže úložisko kódu mimo toho hlavného. Po tom, ako sa práca vo vetve dokončí, môžeš ju zlúčiť späť do hlavnej vetvy alebo priamo do kmeňa.
Okrem vetiev je dôležité vedieť aj o súboroch, ktoré môžu byť v jednom z troch stavov, a to:
V prípade prvého stavu sa zmeny nachádzajú len v pracovnom adresári. Nie sú súčasťou potvrdenia či histórie vývoja. Aby sa však mohli dostať do histórie, vývojár ich musí fázovať.
Keď je vývojár so svojou prácou aj fázovaním spokojný, môže všetko zahrnúť do poslednej fázy, ktorou je potvrdenie. Potvrdenie sa následne stane súčasťou histórie.
Git sa od mnohých ďalších systémov, ako napríklad CVS, Subversion či Perforce, odlišuje tým, akým spôsobom pozerá na dáta. Väčšina systémov ukladá jednotlivé informácie ako zoznamy zmien. Ide pre ne len o súpravu niekoľkých súborov a zmien v určitom čase.
V rámci Git je to však iné. Na dáta nazerá ako na kolekciu snímok, ktoré sú súčasťou systému, respektíve súboru. Vždy, keď v systéme niečo potvrdíš a uložíš, spraví sa fotografia alebo screenshot toho, ako vyzerajú súbory v určitom čase.
Git následne ukladá odkaz na danú snímku a v prípade, že sa po vykonaní ďalšej práce súbor nezmení, znova ho neukladá. Odkazuje na predchádzajúci rovnaký súbor.
V praxi to znamená, že Git kontroluje každú jednu verziu, ktorú vyhotovíš, na rozdiel od iných systémov, ktoré len kopírujú predchádzajúce verzie.
Zaujímavosťou je, že Git na svoju prácu využíva najmä lokálne súbory a zdroje. Informácie z iných miest, napríklad z iných počítačov, nepotrebuje. Inak povedané, celú históriu projektu máš uloženú na lokálnom disku, vďaka čomu sú jednotlivé zmeny a úpravy okamžité.
Ak sa teda rozhodneš, že chceš vidieť verziu projektu spred mesiaca alebo dvoch, Git ti ju načíta v priebehu niekoľkých sekúnd. Nemusí totižto sťahovať jednotlivé údaje zo vzdialeného serveru.
To, že Git pracuje vo veľkej miere offline, má aj ďalšie výhody. Na to, aby si robil nejaké zmeny alebo pracoval na svojom projekte, nepotrebuješ pripojenie na internet. Svoju prácu môžeš preto robiť kdekoľvek sa nachádzaš, či už sedíš do vlaku, alebo si v kaviarni, kde nechceš využívať verejné Wi-Fi pripojenie.
Na väčšine projektov pracuje v súčasnosti paralelne niekoľko vývojárov. Aby sa dokázali navzájom prispôsobiť práci toho druhého, prípadne, aby nerobili to isté alebo aby nenastali zbytočné konflikty v kóde, je dôležité, aby využívali systém na správu verzií.
Okrem systému na správu verzií je však potrebný aj systém kontroly verzií, ktorý umožňuje sledovať jednotlivé zmeny a vrátiť sa k staršej verzii kódu. Toto všetko a ešte oveľa viac dokáže poskytnúť praktický nástroj Git, ktorý je bezplatný a rýchly.
K ďalším výhodám tohto systému patria:
Programovacích jazykov je v súčasnosti veľké množstvo. Ak si zvolíš programovanie v Java, a pritom túžiš používať Git, vhodnou voľbou je verzia Eclipse JGit. Ide o licencovanú a ľahšiu Javu, ktorá implementuje systém riadenia verzií Git. Používanie tejto verzie Javy je jednoduché a rýchle, vďaka čomu zbytočne nekomplikuje prácu.
Existuje niekoľko spôsobov, ako prepojiť svoj projekt s JGit a začať písať kód. Najjednoduchším z nich je použiť nástroj Maven. Integráciu dosiahneš pridaním <dependencies> do súboru pom.xml. Výsledok by mal vyzerať takto:
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit</artifactId>
<version>4.6.0.201612231935-r</version>
</dependency>
Najnovšiu verziu JGit nájdeš v úložisku Maven Central. Po pridaní <dependencies> do súboru pom.xml by mal Maven automaticky získať a použiť z knižnice JGit všetko, čo budeš potrebovať na prácu.
Následne musíš vytvoriť úložisko, ktoré spravíš použitím príkazu init:
Git git = Git.init().setDirectory(„/path/to/repo“).call();
Ak chceš úložisko kopírovať, použi príkaz cloneRepository:
Git git = Git.cloneRepository()
.setURI(„https://github.com/eclipse/jgit.git“)
.setDirectory(„/path/to/repo“)
.call();
V JGit môžeš využívať aj rôzne objekty, ako napríklad blob, commit či tag. Každý má pritom svoj vlastný príkaz.
… vďaka znalosti Git si môžeš otvoriť dvere k novým pracovným príležitostiam v IT svete? Ak sa teda stále rozhoduješ, či ísť týmto smerom, možno ťa presvedčí plat programátora, ktorý je v porovnaní s inými profesiami oveľa vyšší.
Spolu so systémom Git sa môžeš stretnúť aj s označením GitHub. Tieto dva pojmy však označujú dve odlišné veci, preto je dôležité, aby si si ich nemýlil. GitHub je poskytovateľom internetového hostingu, ktorý je určený na vývoj softvéru a správu verzií, pričom využíva nástroj Git.
GitHub ponúka distribuovanú správu zdrojového kódu prostredníctvom systému Git. Okrem toho používateľom poskytuje aj ďalšie funkcie. K nim patria napríklad:
GitHub desktop taktiež poskytuje bezplatný hosting pre projekty typu open-source a od roku 2019 umožňuje bezplatne ukladať súkromné repozitáre.
S vývojom GitHubu sa začalo v roku 2008, keď bol aj spustený. Jeho vývojármi a zakladateľmi boli Tom Preston-Werner, Chris Wanstrath, PJ Hyett a Scott Chacon. Po desiatich rokoch od spustenia sa GitHub stal dcérskou spoločnosťou Microsoftu.
Ďalší systém, ktorý využíva Git, je GitLab. Ide o webový Git repozitár s wiki, čiže webmi, ktoré umožňujú používateľom pridávať obsah a s podporou sledovania chýb. Rovnako ako GitHub, aj GitLab poskytuje hosting, no okrem toho dovoľuje, aby sa softvér používal na serveroch tretích strán.
GitLab napísali Dmitriy Zaporozhets a Sytse „Sid“ Sijbrandij v jazyku Ruby. Krátko po uvedení na trh sa GitLab rozdelil na dva rôzne nástroje:
Jednotlivé nástroje sa od seba odlišujú v niektorých funkciách.
Zaujímavosťou je tiež to, že GitLab je veľmi populárny. Využívajú ho známe spoločnosti, ako napríklad SpaceX, IBM či Alibaba Group.
Používanie Git je rýchle a jednoduché. Množstvo výhod neprinesie len tebe, ale aj celému tvojmu tímu. Spoločná práca bude vďaka tomuto systému oveľa flexibilnejšia a produktívnejšia. Okrem toho znalosti Git ti môžu otvoriť nové možnosti. Prezri si voľné pracovné miesta, ktoré máme aktuálne k dispozícii a vyskúšaj si prácu ako Java programátor senior či junior.