Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

21. diel - Verzovací nástroj Git a NetBeans

Základnú konštrukciu jazyka PHP máme za sebou. Kým kurz úplne opustí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 tiež používa na spoluprácu vo vývojových tímoch.

Čo je to Git?

Git je nástrojom pre 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 pamätá každý náš krok pri písaní kódu.

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 v aplikácii vykonal a kde. Keď sa stane, že dvaja ľudia editovali ten istý súbor, možno zmeny zlúčiť (zamergovať) a nestane sa tak, že si členovia vývojového tímu prepisujú kód pod rukami. 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ú aj ďalšie súbory okrem zdrojových kódov, 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í NetBeans. 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 takto stačí.

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 pre hosťovanie Git repozitárov, a preto ju budeme využívať aj my v tomto tutoriáli.

Registrácia

Aby sme na GitHube mohli vytvoriť vlastný repozitár, musíme sa najskôr zaregistrovať. Prejdeme na oficiálne stránky GitHub a vykonáme registráciu, kde si nastavíme:

  • emailovú adresu,
  • heslo a
  • svoju unikátnu prezývku.
Postup registrácie vyzerá takto:
Základné konštrukcie jazyka PHP

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 (+▼) az menu vyberieme položku New repository:

Základné konštrukcie jazyka PHP

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átnych repozitárov, ku ktorým máme prístup iba my či naši kolegovia. Verejných repozitárov 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 verziovacieho systému. Ide napríklad o dočasnú zložku nbproject/, ktorú vytvára NetBeans.
  • 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:
Základné konštrukcie jazyka PHP

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

Základné konštrukcie jazyka PHP

Týmto máme vzdialený GitHub repozitár vytvorený a môžeme prejsť na prácu s Gitom v NetBeans 😊

Git v NetBeans

Najprv potrebujeme mať nainštalovaného Git klienta na našom počítači.

Inštalácia Git

Prejdeme na web git-smc, kde stiahneme Git klient kliknutím na tlačidlo Git for Windows Setup:

Základné konštrukcie jazyka PHP

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 repositára.

Klonovanie repozitára

Ako ďalší krok je potrebné vzdialený repozitár naklonovať do lokálneho. V menu klikneme na Team a následne v ponuke zvolíme Git a Clone:

Základné konštrukcie jazyka PHP

Teraz vidíme formulár, do ktorého zadáme adresu nášho vzdialeného Git repozitára a prihlasovacie údaje:

Základné konštrukcie jazyka PHP

Prístupové údaje ku Gitu

Pre získanie Repository URL si otvoríme v prehliadači stránku so vzdialeným repozitárom a klikneme na zelené tlačidlo Code. Z ponuky skopírujeme URL adresu repozitára:

Základné konštrukcie jazyka PHP

Užívateľské meno taktiež poznáme. Ale heslo, ktoré sme zadávali pri registrácii nebude fungovať. Pre automatizovaný prístup k nášmu účtu potrebujeme vygenerovať prístupový kľúč (token). Prejdeme do nastavenia GitHub účtu. Alternatívne do nastavenia prejdeme kliknutím na Profil > Settings > Developer Settings > Personal access tokens > Tokens (classic).

Následne zvolíme možnosť Generate new token a Generate new token (classic):

Základné konštrukcie jazyka PHP

V ďalšom kroku si token pomenujeme, nastavíme mu platnosť na 1 rok a zaškrtneme povolenie operácií typu repo:

Základné konštrukcie jazyka PHP

Token vždy generujeme s obmedzenou platnosťou.

Pre vygenerovanie tokenu klikneme na zelené tlačidlo Generate token:

Základné konštrukcie jazyka PHP

Hodnotu kľúča si skopírujeme a uložíme.

Po zatvorení stránky s tokenom ho už nebude možné znovu zobraziť.

Teraz sa vrátime späť do NetBeans, kde do formulára vložíme URL adresu repozitára, naše užívateľské meno a heslo na GitHub a do poľa Clone into napíšeme cestu k adresáru xampp/htdocs/:

Základné konštrukcie jazyka PHP

Následne klikáme na tlačidlo Next kým sa nezobrazí dialóg Destination Directory. Tu iba skontrolujeme umiestnenie a klikneme na Finish:

Základné konštrukcie jazyka PHP

Po naklonovaní repozitára sa zobrazí okno, v ktorom klikneme na Create project..., čím z repozitára vytvoríme NetBeans projekt:

Základné konštrukcie jazyka PHP

Sprievodcu pre založenie nového projektu už poznáme. Pri vytváraní projektu si iba postrážime, či sa projekt vytvorí v rovnakej zložke, do ktorej sme naklonovali náš repozitár:

Základné konštrukcie jazyka PHP

Verzovanie projektu

V projekte klikneme pravým tlačidlom myši na adresár Source Files, ďalej v ponuke zvolíme New > PHP Webpage a nový súbor pomenujeme index.php. Môžeme si všimnúť, že v stromovej štruktúre svieti súbor index.php na zeleno. To znamená, že je nový a pripravený na verzovanie:

Základné konštrukcie jazyka PHP

Poďme obsah súboru nahradiť naším kódom, ktorý určite spoznávate:

Teraz je na čase vytvoriť náš prvý commit.

Commit

V menu klikneme na Team > Commit čím zobrazíme commit dialóg

V ponuke Files to commit vyberieme súbory, ktorých sa commit týka. V našom prípade iba súbor index.php. Ďalej do textového poľa Commit 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:

Základné konštrukcie jazyka PHP

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 last commit, ktorý nám umožní upraviť posledný commit. Táto možnosť je užitočná, ak sme urobili chybu vo svojom poslednom commite, 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 Team > Remote > Push to Upstream:

Základné konštrukcie jazyka PHP

Pozor! Projekty vytvorené podľa kurzov z ITnetwork pod licenciou PRO nenahrávajte do verejných repozitárov!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 po Vás mohla byť vyžadovaná náhrada škody.

Pull

Opačnou operáciou na 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 na Team > Remote > Pull from Upstream.

Keďže na vzdialenom serveri nemáme aktuálne žiadne zmeny, operácia po dokončení zobrazí hlášku Žiadne zmeny na stiahnutie..

Teraz vieme založiť vzdialený GitHub repozitár a napojiť sa naň cez NetBeans. Vieme vytvárať commity a do repozitára ich nahrávať pomocou príkazu push, prípadne ich stiahnuť príkazom pull. Pokiaľ vás Git zaujal, detailne sa ním zaoberáme v pokročilom kurze Git.


 

Všetky články v sekcii
Základné konštrukcie jazyka PHP
Článok pre vás napísal Daniel Zábojník
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje vývoji (a příležitostně navrhování) výjimečných desktopových a mobilních aplikací, grafickému zpracování a všemu co k tomu patří.
Aktivity