IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

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

V predchádzajúcom cvičení, Riešené úlohy k 18.-20. lekcii Pythona, sme si precvičili získané skúsenosti z predchádzajúcich lekcií.

Základnú konštrukciu jazyka Python 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ástroj 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á. Git nám taktiež umožňuje návrat, 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 taktiež predstaviť 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ť, ktoré konkrétne zmeny kto v aplikácii vykonal a kde. Keď sa stane, že dvaja ľudia editovali ten istý súbor, je možné zmeny zlúčiť (zamergovať). Vďaka tomu sa nestane, že by si členovia vývojového tímu prepisovali 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). Prostredníctvom Gitu 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 začiatočníkom 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 pomocou príkazového riadka. My si prácu uľahčíme a budeme pracovať v grafickom rozhraní PyCharm. 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 od posledného commitu (uloženia) zmenilo.
  • PushNahrá všetky naše lokálne zmeny (commity) na vzdialený server, odkiaľ si ich môžu ostatní programátori stiahnuť.
  • PullStiahne 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 repozitára (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:

  • e-mailovú adresu,
  • heslo,
  • svoju unikátnu prezývku.

Postup registrácie vyzerá takto:

Základná konštrukcia jazyka Python

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:

Základná konštrukcia jazyka Python

Následne vidíme formulár na vytvorenie repozitára. Poďme si podrobnejšie prejsť jednotlivé položky a ich význam:

  • Repository nameNázov repozitára je krátky, jednoduchý a popisuje, čo obsahuje. Vyhýbame sa špeciálnym znakom a namiesto medzier píšeme spojovníkmi (-).
  • Public/PrivateViditeľ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 .idea/ a podobne.
  • LicenseLicencia 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: Python:

Základná konštrukcia jazyka Python

Akonáhle 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štrukcia jazyka Python

Týmto máme vzdialený GitHub repozitár vytvorený a môžeme prejsť k práci s Gitom v PyCharme 😊

Git v PyCharme

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

Inštalácia Git

Spustíme PyCharm a v úvodnej ponuke klikneme na Get from VCS:

Základná konštrukcia jazyka Python

Pokiaľ nám IDE po spustení automaticky otvorilo posledný projekt, klikneme v menu na File -> Close project. Týmto sa dostaneme späť na úvodnú ponuku.

Následne v menu klikneme na Repository URL, z rozbaľovacej ponuky Version control vyberieme Git a klikneme na tlačidlo Download and Install:

Základná konštrukcia jazyka Python

Pokiaľ vo formulári možnosť Download and Install nevidíme, máme už Git na svojom počítači nainštalovaný 🙂

Klonovanie repozitára

Ako ďalší krok je potrebné vzdialený repozitár naklonovať do lokálneho. Po úspešnej inštalácii Gitu vyberieme v menu GitHub a prihlásime sa k svojmu účtu kliknutím na Log In via GitHub…:

Základná konštrukcia jazyka Python

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:

Základná konštrukcia jazyka Python

Týmto sa vzdialený repozitár naklonuje (skopíruje) z GitHubu do počítača. Ihneď potom sa automaticky otvorí rozhranie PyCharm, ktoré už dobre poznáme.

Verzovanie projektu

V projekte klikneme pravým tlačidlom myši na adresár git-tutorial/, ďalej v ponuke zvolíme New > Directory a nový adresár pomenujeme src/. Potom klikneme pravým tlačidlom myši na adresár src/, zvolíme New > Python File a súbor pomenujeme HelloWorld. Môžeme si všimnúť, že v stromovej štruktúre svieti súbor HelloWorld na červeno. To znamená, že sa zatiaľ neverzuje. Zároveň sa nám zobrazilo dialógové okno Add File to Git, v ktorom sa nás IDE pýta, či chceme triedu pridať do Gitu a začať verzovať. Klikneme teda na tlačidlo Add:

Základná konštrukcia jazyka Python

V stromovej štruktúre teraz vidíme súbor na zeleno, čo znamená, že je súbor do Gitu pridaný a verzuje sa.

Pokiaľ sme dialógové okno zavreli, ale názov súboru je stále červený, klikneme na súbor pravým tlačidlom myši av ponuke zvolíme Git a klikneme na Add.

Poďme do súboru vložiť nasledujúci kód, ktorý určite spoznávame:

print("Hello World!")

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

Commit

V ľavom postrannom paneli klikneme na ikonu Základná konštrukcia jazyka Python, čím zobrazíme nový panel Commit.

V ponuke Changes vyberieme súbory, ktorých sa commit týka. V našom prípade iba súbor HelloWorld.py. Ď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štrukcia jazyka Python

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 ak sme 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 záložku main v ľavej časti horného panelu:

Základná konštrukcia jazyka Python

V ďalšom okne push potvrdíme kliknutím na tlačidlo Push:

Základná konštrukcia jazyka Python

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 opäť kliknutím na záložku main v ľavej časti horného panelu. Potom rozklikneme položku Remote > main a zvolíme možnosť Rebase (ak chceme zmeny v projekte prepísať), alebo Merge (ak chceme zmeny v projekte zlúčiť):

Základná konštrukcia jazyka Python

Keďže na vzdialenom serveri nemáme aktuálne žiadne zmeny, operácia po dokončení zobrazí hlášku All files are up-to-date.

Teraz vieme založiť vzdialený GitHub repozitár a napojiť sa naň cez PyCharm. 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 nasledujúcom kvíze, Kvíz - Základná konštrukcia Python, si vyskúšame nadobudnuté skúsenosti z kurzu.


 

Predchádzajúci článok
Riešené úlohy k 18.-20. lekcii Pythona
Všetky články v sekcii
Základná konštrukcia jazyka Python
Preskočiť článok
(neodporúčame)
Kvíz - Základná konštrukcia Python
Č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