18. diel - Verzovací nástroj Git a Visual Studio
V predchádzajúcej lekcii, Najčastejšie chyby C# začiatočníkov, robíš ich tiež?, sme si ukázali najčastejšie chyby
začiatočníkov v C# .NET, napr. ohľadom pomenovania kolekcií,
bool výrazov a DRY.
Základné konštrukcie jazyka C# .NET máme za sebou. Ešte predtým, ako kurz úplne ukončíme, naučíme sa pracovať s nástrojom Git, ktorý nám pomáha efektívne spravovať a sledovať zmeny v našom kóde. Často sa používa aj na spoluprácu vo vývojových tímoch.
Čo je to Git?
Git je nástrojom na správu verzií, ktorý programátorom umožňuje sledovať históriu všetkých zmien v projekte. Môžeme sa tak jednoducho vrátiť k ľubovoľnej predchádzajúcej verzii nášho kódu, ktorá bola ešte funkčná alebo keď zistíme, že nám nejaký nový spôsob riešenia čohokoľvek nakoniec nevyhovuje. Verzie je možné organizovať do tzv. vetiev, ktoré si môžeme ľubovoľne pomenovávať.
Git si môžeme predstaviť aj ako magický denník, ktorý si pri písaní kódu pamätá každý náš krok.
Prečo používať Git?
Git nám určite pomôže organizovať kód vo vlastných projektoch. Najväčší prínos Gitu je ale pri práci v tíme, kedy umožňuje jednoducho vidieť, aké konkrétne zmeny, kto a kde v aplikácii vykonal. Keď sa stane, že dvaja ľudia editovali ten istý súbor, možno zmeny zlúčiť (mergovať) a nestane sa tak, že si členovia vývojového tímu navzájom prepisujú kód. Preto je základná znalosť práce s Gitom očakávaná na väčšine pracovných pozícií (kde existuje nejaký vývojový tím). Cez Git taktiež študenti našich rekvalifikačných kurzov odovzdávajú svoj projekt na skúšku.
Git je možné používať do istej miery aj ako zálohu. Zmeny však musíme ručne a pravidelne nahrávať na vzdialený repozitár. Aplikácie tiež obvykle obsahujú okrem zdrojových kódov aj ďalšie súbory, ktoré sa na Git nedávajú. Preto minimálne pre začiatočníkov odporúčame stále používať synchronizované úložiská typu Dropbox, aby ste o svoje projekty neprišli pri strate alebo poškodení počítača.
Základné príkazy Gitu
S Gitom sa často pracuje cez príkazový riadok. My si prácu uľahčíme a budeme pracovať v grafickom rozhraní Visual Studio. Budeme používať nasledujúce príkazy:
- Commit - je v Gite ekvivalentom ukladania dokumentu a slúži na vytvorenie záznamu o tom, čo sa zmenilo od posledného commitu (uloženia).
- Push - nahrá všetky naše lokálne zmeny (commity) na vzdialený server, odkiaľ si ich môžu ostatní programátori stiahnuť.
- Pull - stiahne zo vzdialeného servera všetky zmeny od ostatných programátorov do našej verzie kódu.
Príkazov je samozrejme viac, tým je potom venovaný celý kurz. Nám to však stačí takto.
Git repozitár
Git repozitár si predstavme ako špeciálny priečinok na našom počítači, ktorý obsahuje všetky súbory projektu, ale okrem toho aj informácie o histórii všetkých zmien, ktoré sme v týchto súboroch urobili. Zakaždým, keď urobíme nový commit, Git uloží informácie o zmenách práve do repozitára.
Vzdialený vs. lokálny repozitár
Repozitár je uložený na našom počítači (lokálny repozitár), ale aj na serveri na internete (vzdialený repozitár). Zakaždým, keď vykonáme push, odošleme všetky zmeny z nášho lokálneho repozitára do vzdialeného. Tam si ich potom môžu prezerať ďalší ľudia. A naopak, keď vykonáme pull, stiahneme najnovšie zmeny zo vzdialeného repozitára do svojho lokálneho (napr. zmeny vykonané ostatnými).
Vytvorenie vzdialeného GitHub repozitára
GitHub je jednou z najznámejších platforiem na hosťovanie Git repozitárov, a preto ju budeme v tejto lekcii využívať aj my.
Registrácia
Aby sme na GitHube mohli vytvoriť vlastný repozitár, musíme sa najskôr zaregistrovať. Prejdeme na oficiálnu stránku GitHub a vykonáme registráciu, kde si nastavíme:
- emailovú adresu,
- heslo a
- svoju unikátnu prezývku.
Postup registrácie vyzerá takto:

Vytvorenie repozitára
Po úspešnej registrácii sa prihlásime do svojho účtu. V pravom hornom rohu klikneme na tlačidlo s plusom a šípkou (+ ▼) a z menu vyberieme položku New repository:

Následne vidíme formulár na vytvorenie repozitára. Poďme si podrobnejšie prejsť jednotlivé položky a ich význam:
- Repository name - Názov repozitára je
krátky, jednoduchý a opisuje, čo obsahuje. Vyhýbame sa špeciálnym znakom a
namiesto medzier píšeme pomlčky (
-). - Public / Private - Viditeľnosť určuje, kto môže repozitár vidieť a pristupovať k nemu. Najčastejšie vytvárame privátne repozitáre, ku ktorým máme prístup iba my či naši kolegovia. Verejné repozitáre vytvárame najmä pre tzv. open source projekty, ktoré povzbudzujú verejnú spoluprácu.
- README file - Tento dokument je prvá vec, ktorú používateľ vidí, keď navštívi náš repozitár. Obsahuje základný popis projektu, inštrukcie pre inštaláciu, použitie, prispievanie do projektu a tak ďalej.
- .gitignore - Už vieme, že Git repozitár by mal
obsahovať výhradne zdrojový kód. Tento súbor sa používa na
vylúčenie ostatných súborov alebo zložiek z verzovacieho
systému. Ide napríklad o dočasný priečinok
.vs/, spustiteľné.exesúbory a podobne. - License - Licencia v repozitári určuje, ako môžu ostatní používať, kopírovať, modifikovať či distribuovať náš projekt.
Nový repozitár pomenujeme napr. git-tutorial, viditeľnosť
nastavíme na Private a ďalej pridáme README a .
gitignore template: VisualStudio:

Teraz, keď máme formulár vyplnený, klikneme na tlačidlo Create repository a počkáme, kým sa vzdialený repozitár vytvorí:

Týmto máme vzdialený GitHub repozitár vytvorený a môžeme prejsť na prácu s Gitom vo Visual Studiu 😊
Git vo Visual Studiu
Najprv potrebujeme mať na našom počítači nainštalovaného Git klienta.
Inštalácia Git
Prejdeme na web git-scm, kde stiahneme Git klienta kliknutím na tlačidlo Git for Windows Setup:

Následne inštaláciu "vynextíme" a počkáme, kým sa Git klient do počítača nainštaluje. Jednotlivé kroky inštalácie podrobne vysvetľujeme v lekcii Git - Inštalácia a vytvorenie repozitára.
Klonovanie repozitára
Ako ďalší krok je potrebné vzdialený repozitár naklonovať do lokálneho. Po úspešnej inštalácii Gitu spustíme Visual Studio a v úvodnej ponuke vyberieme Clone a repository:

Ďalej v ponuke Browse a repository klikneme na GitHub:

Vyberieme možnosť Add an account a prihlásime sa k svojmu účtu GitHub:

Teraz vidíme formulár s našimi vzdialenými GitHub repozitármi. Z ponuky vyberieme repozitár, ktorý sme si v predchádzajúcom kroku založili a klikneme na tlačidlo Clone:

Týmto sa vzdialený repozitár naklonuje (skopíruje) z GitHubu do počítača. Ihneď potom sa automaticky otvorí rozhranie Visual Studio, ktoré už dobre poznáme.
Verzovanie projektu
V IDE klikneme na File > New > Project... a v ponuke vyberieme Console App:

Ako názov projektu zvolíme Hello World. Umiestnenie projektu
nastavíme zhodne so zložkou, do ktorej sme naklonovali náš repozitár:

Potom vytvorenie projektu dokončíme. Poďme teraz do súboru
Program.cs vložiť nasledujúci kód, ktorý určite
spoznávate:
using System; namespace HelloWorld { internal class Program { static void Main(string[] args) { Console.WriteLine("Hello world!"); } } }
Teraz je na čase vytvoriť náš prvý commit.
Commit
V menu klikneme na Git > Commit or Stash... čím zobrazíme ponuku Git Changes:

Ďalej do textového poľa Enter a message napíšeme, čo sme urobili. My sme do repozitára pridali aplikáciu Hello World, napíšeme teda napr. Add HelloWorld application a klikneme na tlačidlo Commit All:

Správne napísaná commit správa by mala jasne a stručne popisovať, aké zmeny daný commit prináša. Ďalej existujú rôzne konvencie, ale všeobecne platí, že správy píšeme v imperatíve a ideálne v anglickom jazyku.
Commit amend
Pri vytváraní commitu sa nám tiež zobrazí checkbox Amend, ktorý nám umožní upraviť posledný commit. Táto možnosť je užitočná, ak sme urobili chybu vo svojom poslednom commite, napríklad zabudli pridať nejaký súbor, alebo chceme zmeniť commit správu.
Push
Zmenu máme vytvorenú. Teraz ju nahráme do vzdialeného repozitára na GitHube. Na to slúži operácia push. Push typicky vykonávame po dokončení logickej jednotky práce, pred odchodom z domu či práce alebo ak chceme, aby naše zmeny boli viditeľné pre ostatných.
V IDE push vyvoláme kliknutím na Git > Push:

Pozor! Projekty vytvorené podľa kurzov z ICTdemy pod licenciou PRO nenahrávajte do verejných repozitárov! Sú chránené autorskými právami a ich šírenie je nelegálne. Mohol by si ich potom zobraziť a stiahnuť ktokoľvek na internete, čím by od vás mohla byť vyžadovaná náhrada škody.
Pull
Opačnou operáciou od push je pull. Tá stiahne zo vzdialeného servera všetky zmeny od ostatných do našej verzie kódu. Pull vykonáme kliknutím Git > Pull.
Keďže na vzdialenom serveri nemáme aktuálne žiadne zmeny, operácia po dokončení zobrazí hlášku The repository is already up to date. No changes to receive.
Teraz vieme založiť vzdialený GitHub repozitár a napojiť sa naň cez Visual Studio. Vieme vytvárať commity a nahrávať ich do repozitára nahrávať pomocou príkazu push, prípadne ich stiahnuť príkazom pull. Ak vás Git zaujal, detailne sa ním zaoberáme v pokročilom kurze Git.
V nasledujúcom kvíze, Kvíz - Základná konštrukcia C# .NET, si vyskúšame nadobudnuté skúsenosti z kurzu.
