NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Lekce 21 - Verzovací nástroj Git a PyCharm

V předešlém cvičení, Řešené úlohy k 18.-20. lekci Pythonu, jsme si procvičili nabyté zkušenosti z předchozích lekcí.

Základní konstrukce jazyka Python 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ástroj 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í. Git nám také umožňuje návrat, 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, které konkrétní změny kdo v aplikaci provedl a kde. Když se stane, že dva lidé editovali tentýž soubor, lze změny sloučit (zamergovat). Díky tomu se nestane, že by si členové vývojového týmu přepisovali 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). Prostřednictvím Gitu 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ě začátečníkům 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 pomocí příkazového řádku. My si práci usnadníme a budeme pracovat v grafickém rozhraní PyCharm. 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 od posledního commitu (uložení) změnilo.
  • PushNahraje všechny naše lokální změny (commity) na vzdálený server, odkud si je mohou ostatní programátoři stáhnout.
  • PullStá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 repozitáře (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:

  • e-mailovou adresu,
  • heslo,
  • svou unikátní přezdívku.

V následující ukázce využíváme zavináč @. Zavináč na české klávesnici můžeme napsat pomocí klávesy pravý ALT a písmene V:

Zavináč - Základní konstrukce jazyka Python

Postup registrace vypadá takto:

Základní konstrukce jazyka Python

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 Python

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 nameNá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 spojovníky (-).
  • Public/PrivateViditelnost 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 .idea/ a podobně.
  • LicenseLicence 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 a .gitignore template: Python:

Základní konstrukce jazyka Python

Jakmile 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 Python

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

Git v PyCharmu

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

Instalace Git

Spustíme PyCharm a v úvodní nabídce klikneme na Get from VCS:

Základní konstrukce jazyka Python

Pokud nám IDE po spuštění automaticky otevřelo poslední projekt, klikneme v menu na File -> Close project. Tímto se dostaneme zpět na úvodní nabídku.

Následně v menu klikneme na Repository URL, z rozbalovací nabídky Version control vybereme Git a klikneme na tlačítko Download and Install:

Základní konstrukce jazyka Python

Pokud ve formuláři možnost Download and Install nevidíme, máme již Git na svém počítači nainstalovaný 🙂

Klonování repozitáře

Jako další krok je potřeba vzdálený repozitář naklonovat do lokálního. Po úspěšné instalaci Gitu vybereme v menu GitHub a přihlásíme se ke svému účtu kliknutím na Log In via GitHub…:

Základní konstrukce jazyka Python

Nyní vidíme formulář s našimi vzdálenými GitHub repozitáři. Z nabídky vybereme repozitář, který jsme si v předchozím kroku založili, a klikneme na tlačítko Clone:

Základní konstrukce jazyka Python

Tímto se vzdálený repozitář naklonuje (zkopíruje) z GitHubu do počítače. Ihned poté se automaticky otevře rozhraní PyCharm, které již dobře známe.

Verzování projektu

V projektu klikneme pravým tlačítkem myši na adresář git-tutorial/, dále v nabídce zvolíme New > Directory a nový adresář pojmenujeme src/. Poté klikneme pravým tlačítkem myši na adresář src/, zvolíme New > Python File a soubor pojmenujeme HelloWorld. Můžeme si všimnout, že ve stromové struktuře svítí soubor HelloWorld červeně. To znamená, že se zatím neverzuje. Zároveň se nám zobrazilo dialogové okno Add File to Git, ve kterém se nás IDE dotazuje, zda chceme třídu přidat do Gitu a začít verzovat. Klikneme tedy na tlačítko Add:

Základní konstrukce jazyka Python

Ve stromové struktuře nyní vidíme soubor zeleně, což znamená, že je soubor do Gitu přidán a verzuje se.

Pokud jsme dialogové okno zavřeli, ale název souboru je stále červený, klikneme na soubor pravým tlačítkem myši a v nabídce zvolíme Git a klikneme na Add.

Pojďme do souboru vložit následující kód, který jistě poznáváme:

print("Ahoj světe!")

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

Commit

V levém postranním panelu klikneme na ikonu Základní konstrukce jazyka Python, čímž zobrazíme nový panel Commit.

V nabídce Changes vybereme soubory, kterých se commit týká. V našem případě pouze soubor HelloWorld.py. 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 Python

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, 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, například pokud jsme zapomněli přidat nějaký soubor 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 záložku main v levé části horního panelu:

Základní konstrukce jazyka Python

V dalším okně push potvrdíme kliknutím na tlačítko Push:

Základní konstrukce jazyka Python

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 opět kliknutím na záložku main v levé části horního panelu. Poté rozklikneme položku Remote > main a zvolíme možnost Rebase (pokud chceme změny v projektu přepsat), nebo Merge (pokud chceme změny v projektu sloučit):

Základní konstrukce jazyka Python

Jelikož na vzdáleném serveru nemáme aktuálně žádné změny, operace po dokončení zobrazí hlášku All files are up-to-date.

Nyní umíme založit vzdálený GitHub repozitář a napojit se na něj přes PyCharm. 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 Python, si vyzkoušíme nabyté zkušenosti z kurzu.


 

Předchozí článek
Řešené úlohy k 18.-20. lekci Pythonu
Všechny články v sekci
Základní konstrukce jazyka Python
Přeskočit článek
(nedoporučujeme)
Kvíz - Základní konstrukce Python
Článek pro vás napsal Daniel Zábojník
Avatar
Uživatelské hodnocení:
317 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