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í.

Lekce 21 - Verzovací nástroj Git a NetBeans

V minulé lekci, Nejčastější chyby PHP začátečníků, děláš je také?, jsme si ukázali nejčastější chyby začátečníků v PHP, např. ohledně vyhodnocování bool výrazů a DRY.

Základní konstrukce jazyka PHP máme za sebou. Než kurz zcela opustíme, naučíme se pracovat s nástrojem Git, který nám pomáhá efektivně spravovat a sledovat změny v našem kódu. Často se také používá pro spolupráci ve vývojových týmech.

Co je to Git?

Git je nástrojem pro správu verzí, který programátorům umožňuje sledovat historii všech změn v projektu. Můžeme se tak jednoduše vrátit k libovolné předchozí verzi našeho kódu, která byla ještě funkční nebo když zjistíme, že nám nějaký nový způsob řešení čehokoli nakonec nevyhovuje. Verze lze organizovat do tzv. větví, které si můžeme libovolně pojmenovávat.

Git si můžeme rovněž představit jako magický deník, který si pamatuje každý náš krok při psaní kódu.

Proč používat Git?

Git nám určitě pomůže organizovat kód ve vlastních projektech. Největší přínos Gitu je ale při práci v týmu, kdy umožňuje jednoduše vidět, jaké konkrétní změny kdo v aplikaci provedl a kde. Když se stane, že dva lidé editovali ten samý soubor, lze změny sloučit (zamergovat) a nestane se tak, že si členové vývojového týmu přepisují kód pod rukama. Proto je základní znalost práce s Gitem očekávána na většině pracovních pozic (kde existuje nějaký vývojový tým). Přes Git rovněž studenti našich rekvalifikačních kurzů odevzdávají svůj projekt ke zkoušce.

Git lze používat do jisté míry i jako zálohu. Změny však musíme ručně a pravidelně nahrávat na vzdálený repozitář. Aplikace také obvykle obsahují i další soubory kromě zdrojových kódů, které se na Git nedávají. Proto minimálně pro začátečníky doporučujeme stále používat synchronizovaná úložiště typu Dropbox, abyste o své projekty nepřišli při ztrátě nebo poškození počítače.

Základní příkazy Gitu

S Gitem se často pracuje přes příkazový řádek. My si práci usnadníme a budeme pracovat v grafickém rozhraní NetBeans. Budeme používat následující příkazy:

  • Commit - je v Gitu ekvivalentem ukládání dokumentu a slouží k vytvoření záznamu o tom, co se změnilo od posledního commitu (uložení) ,
  • Push - nahraje všechny naše lokální změny (commity) na vzdálený server, odkud si je mohou ostatní programátoři stáhnout,
  • Pull - stáhne ze vzdáleného serveru všechny změny od ostatních programátorů do naší verze kódu.

Příkazů je samozřejmě více, těm je pak věnovaný celý kurz. Nám to však takto stačí.

Git repozitář

Git repozitář si představme jako speciální složku na našem počítači, která obsahuje všechny soubory projektu, ale kromě toho také informace o historii všech změn, které jsme v těchto souborech udělali. Pokaždé, když uděláme nový commit, Git uloží informace o změnách právě do repozitáře.

Vzdálený vs. lokální repozitář

Repozitář je uložený na našem počítači (lokální repozitář), ale také na serveru na internetu (vzdálený repozitář). Pokaždé, když provedeme push, odešleme všechny změny z našeho lokálního repozitáře do vzdáleného. Tam si je pak mohou prohlížet další lidé. A naopak, když provedeme pull, stáhneme nejnovější změny ze vzdáleného repozitáře do svého lokálního (např. změny provedené ostatními).

Vytvoření vzdáleného GitHub repozitáře

GitHub je jednou z nejznámějších platforem pro hostování Git repozitářů, a proto ji budeme využívat i my v tomto tutoriálu.

Registrace

Abychom na GitHubu mohli vytvořit vlastní repozitář, musíme se nejprve zaregistrovat. Přejdeme na oficiální stránky GitHub a provedeme registraci, kde si nastavíme:

  • emailovou adresu,
  • heslo a
  • svou unikátní přezdívku.

Postup registrace vypadá takto:

Základní konstrukce jazyka PHP

Vytvoření repozitáře

Po úspěšné registraci se přihlásíme do svého účtu. V pravém horním rohu klikneme na tlačítko s plusem a šipkou (+ ▼) a z menu vybereme položku New repository:

Základní konstrukce jazyka PHP

Následně vidíme formulář k vytvoření repozitáře. Pojďme si podrobněji projít jednotlivé položky a jejich význam:

  • Repository name - Název repozitáře je krátký, jednoduchý a popisuje, co obsahuje. Vyhýbáme se speciálním znakům a namísto mezer píšeme pomlčky (-).
  • Public / Private - Viditelnost určuje, kdo může repozitář vidět a přistupovat k němu. Nejčastěji vytváříme privátní repozitáře, ke kterým máme přístup pouze my či naši kolegové. Veřejné repozitáře vytváříme zejména pro tzv. open source projekty, které povzbuzují veřejnou spolupráci.
  • README file - Tento dokument je první věc, kterou uživatel vidí, když navštíví náš repozitář. Obsahuje základní popis projektu, instrukce pro instalaci, použití, přispívání do projektu a tak dále.
  • .gitignore - Již víme, že Git repozitář by měl obsahovat výhradně zdrojový kód. Tento soubor se používá k vyloučení ostatních souborů nebo složek z verzovacího systému. Jedná se například o dočasnou složku nbproject/, kterou vytváří NetBeans.
  • License - Licence v repozitáři určuje, jak mohou ostatní používat, kopírovat, modifikovat či distribuovat náš projekt.

Nový repozitář pojmenujeme např. git-tutorial, viditelnost nastavíme na Private a dále přidáme README:

Základní konstrukce jazyka PHP

Teď, když máme formulář vyplněný, klikneme na tlačítko Create repository a počkáme, než se vzdálený repozitář vytvoří:

Základní konstrukce jazyka PHP

Tímto máme vzdálený GitHub repozitář vytvořený a můžeme přejít na práci s Gitem v NetBeans 😊

Git v NetBeans

Prvně potřebujeme mít nainstalovaného Git klienta na našem počítači.

Instalace Git

Přejdeme na web git-smc, kde stáhneme Git klient kliknutím na tlačítko Git for Windows Setup:

Základní konstrukce jazyka PHP

Následně instalaci "vynextíme" a počkáme, než se Git klient do počítače nainstaluje. Jednotlivé kroky instalace podrobně vysvětlujeme v lekci Git - Instalace a vytvoření repositáře.

Klonování repozitáře

Jako další krok je potřeba vzdálený repozitář naklonovat do lokálního. V menu klikneme na Team a následně v nabídce zvolíme Git a Clone:

Základní konstrukce jazyka PHP

Nyní vidíme formulář, do kterého zadáme adresu našeho vzdáleného Git repozitáře a přihlašovací údaje:

Základní konstrukce jazyka PHP

Přístupové údaje ke Gitu

Pro získání Repository URL si otevřeme v prohlížeči stránku se vzdáleným repozitářem a klikneme na zelené tlačítko Code. Z nabídky zkopírujeme URL adresu repozitáře:

Základní konstrukce jazyka PHP

Uživatelské jméno taktéž známe. Ale heslo, které jsme zadávali při registraci nebude fungovat. Pro automatizovaný přístup k našemu účtu potřebujeme vygenerovat přístupový klíč (token). Přejdeme do nastavení GitHub účtu. Alternativně do nastavení přejdeme kliknutím na Profil > Settings > Developer Settings > Personal access tokens > Tokens (classic).

Následně zvolíme možnost Generate new token a Generate new token (classic):

Základní konstrukce jazyka PHP

V dalším kroku si token pojmenujeme, nastavíme mu platnost na 1 rok a zaškrtneme povolení operací typu repo:

Základní konstrukce jazyka PHP

Token vždy generujeme s omezenou platností.

Pro vygenerování tokenu klikneme na zelené tlačítko Generate token:

Základní konstrukce jazyka PHP

Hodnotu klíče si zkopírujeme a uložíme.

Po zavření stránky s tokenem jej již nebude možné znovu zobrazit.

Nyní se vrátíme zpět do NetBeans, kde do formuláře vložíme URL adresu repozitáře, naše uživatelské jméno a heslo na GitHub a do pole Clone into napíšeme cestu k adresáři xampp/htdocs/:

Základní konstrukce jazyka PHP

Následně klikáme na tlačítko Next dokud se nezobrazí dialog Destination Directory. Zde pouze zkontrolujeme umístění a klikneme na Finish:

Základní konstrukce jazyka PHP

Po naklonování repozitáře se zobrazí okno, ve kterém klikneme na Create project..., čímž z repozitáře vytvoříme NetBeans projekt:

Základní konstrukce jazyka PHP

Průvodce pro založení nového projektu již známe. Při vytváření projektu si pouze pohlídáme, zda se projekt vytvoří ve stejné složce, do které jsme naklonovali náš repozitář:

Základní konstrukce jazyka PHP

Verzování projektu

V projektu klikneme pravým tlačítkem myši na adresář Source Files/, dále v nabídce zvolíme New > PHP Webpage a nový soubor pojmenujeme index.php. Můžeme si všimnout, že ve stromové struktuře svítí soubor index.php zeleně. To znamená, že je nový a připravený k verzování:

Základní konstrukce jazyka PHP

Pojďme obsah souboru nahradit naším kódem, který jistě poznáváte:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        echo('Hello world');
        ?>
    </body>
</html>

Nyní je na čase vytvořit náš první commit.

Commit

V menu klikneme na Team > Commit čímž zobrazíme commit dialog

V nabídce Files to commit vybereme soubory, kterých se commit týká. V našem případě pouze soubor index.php. Dále do textového pole Commit Message napíšeme, co jsme udělali. My jsme do repozitáře přidali aplikaci Hello World, napíšeme tedy např. Add HelloWorld application a klikneme na tlačítko Commit:

Základní konstrukce jazyka PHP

Správně napsaná commit zpráva by měla jasně a stručně popisovat, jaké změny daný commit přináší. Dále existují různé konvence, ale obecně platí, že zprávy píšeme v imperativu a ideálně v anglickém jazyce.

Commit amend

Při vytváření commitu se nám rovněž zobrazí checkbox Amend last commit, který nám umožní upravit poslední commit. Tato možnost je užitečná, pokud jsme udělali chybu ve svém posledním commitu, nebo chceme změnit commit zprávu.

Push

Změnu máme vytvořenou. Nyní ji nahrajeme do vzdáleného repozitáře na GitHubu. K tomu slouží operace push. Push typicky provádíme po dokončení logické jednotky práce, před odchodem z domova či práce a nebo pokud chceme, aby naše změny byly viditelné pro ostatní.

V IDE push vyvoláme kliknutím na Team > Remote > Push to Upstream:

Základní konstrukce jazyka PHP

Pozor! Projekty vytvořené podle kurzů z ITnetwork pod licencí PRO nenahrávejte do veřejných repozitářů! Jsou chráněny autorskými právy a jejich šíření je nelegální. Mohl by si je pak zobrazit a stáhnout kdokoli na internetu, čím by po Vás mohla být vyžadována náhrada škody.

Pull

Opačnou operací k push je pull. Ta stáhne ze vzdáleného serveru všechny změny od ostatních do naší verze kódu. Pull provedeme kliknutím na Team > Remote > Pull from Upstream.

Jelikož na vzdáleném serveru nemáme aktuálně žádné změny, operace po dokončení zobrazí hlášku Žádné změny ke stažení..

Nyní umíme založit vzdálený GitHub repozitář a napojit se na něj přes NetBeans. Umíme vytvářet commity a do repozitáře je nahrávat pomocí příkazu push, případně je stáhnout příkazem pull. Pokud vás Git zaujal, detailně se jím zabýváme v pokročilém kurzu Git.

V následujícím kvízu, Kvíz - Základní konstrukce PHP, si vyzkoušíme nabyté zkušenosti z kurzu.


 

Předchozí článek
Nejčastější chyby PHP začátečníků, děláš je také?
Všechny články v sekci
Základní konstrukce jazyka PHP
Přeskočit článek
(nedoporučujeme)
Kvíz - Základní konstrukce PHP
Článek pro vás napsal Daniel Zábojník
Avatar
Uživatelské hodnocení:
42 hlasů
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