Pokročílí 7: Verziovací nástroj git¶
Dnes sa naučíme pracovať s najpopulárnejším distribuovaným verziovacím nástrojom git. Najprv si ukážeme základné príkazy tohto nástroja a na konci cvičenia si vyskúšame, ako nástroj PyCharm integruje prácu s verziami v rámci svojho IDE.
git¶
Vytvorenie git repozitára¶
Working tree a index/staging¶
Zápis zmien do repozitára¶
Pridanie ďalších commitov¶
Teraz si vyskúšame urobiť zopár ďalších commitov
Úloha 7.5
-
V projekte si vytvorte balík
tvarya v ňom 2 súbory s nasledovným obsahom -
Do súboru main.py pridajte nasledujúci kód:
-
Vykonané zmeny pridajte do indexu pomocou
git add ., ktorý spustíte v terminály nástroja PyCharm -
Pridanie si overte pomocou príkazu
git status. Mal by vypísať niečo také: -
Vytvorenie commitu a zápis zmien vykonajte pomocou príkazu
git commit -m "Moduly stvorec a obdlznik"
V našom repozitári teraz máme 3 commity. Ich zoznam si môžeme zobraziť pomocou príkazu git log
commit a6fef76e8d7b2378e907f98c65ac458f321b0969 (HEAD -> master)
Author: Jozef Wagner <[email protected]>
Date: Wed Oct 8 16:06:56 2025 +0200
Uprava modulu tvary.stvorec
commit 9f2f95b115ef916b6867a9a663518ab264fa0183
Author: Jozef Wagner <[email protected]>
Date: Wed Oct 8 15:57:50 2025 +0200
Moduly stvorec a obdlznik
commit 64ea0e111f59922819e46632062d069999ef48f3
Author: Jozef Wagner <[email protected]>
Date: Tue Oct 7 21:24:25 2025 +0200
Prvý commit
Git obsahuje aj GUI nástroj na vizualizáciu histórie a zmien v git repozitári. Spustíme ho príkazom gitk.
Grafické rozhranie pre zobrazenie histórie a zmien
Zmeny, ktoré nechceme sledovať¶
Vetvy zmien¶
Úloha 7.8
-
Vytvorme novú vetvu s názvom kruh pomocou príkazu
git checkout -b kruh -
Do balíka tvary pridajte modul
kruh -
Pridajte nasledovný kód do súboru
main.py -
Zmeny pridajte do indexu pomocou
git add . -
Vytvorte nový commit pomocou
git commit -m "Modul kruh"
Modul kruh sme si pridali vo vetve kruh, v hlavnej vetve sa tento modul nebude nachádzať. Zoznam všetkých vetiev, ktoré máme v repozitári si vypíšeme príkazom git branch -av. Ak chceme vetvu kruh zlúčiť s hlavnou vetvou, použijeme na to príkaz git merge.
Úloha 7.9
-
Prepite sa do hlavnej vetvy príkazom
git checkout master -
To, na ktorej vetve sme, zistíme príkazom
git statusalebogit branch -
Všimnite si, že súbor tvary/kruh.py zmizol, a commit v ktorom sme ho pridali nie je viditeľný ani cez
git logani cezgitk -
Zlúčte vetvu kruh do hlavnej vetvy príkazom
git merge kruh -
Modul kruh už budeme mať opäť k dispozícii
Štruktúra git repozitára¶
Na dnešnom cvičení sme si ukázali prácu s git indexom a vetvami. Nabudúce si ukážeme prácu s vetvami uloženými mimo náš repozitár, ktoré môžu byť na počítačoch našich kolegov alebo napríklad na GitHube.
Nasledujúci diagram ukazuje rôzne typy git úložísk a príkazy, pomocou ktorých do nich vieme pridávať nové zmeny a commity.
Štruktúra git repozitára a základné príkazy
Podpora git v nástroji PyCharm¶
Nástroj PyCharm automaticky detekuje git repozitár a umožňuje nám robiť väčšinu operácií bez použitia príkazového riadku. Hlavné menu pre správu verzií je vľavo hore. Pomocou neho sa vieme prepínať medzi vetvami.
Menu správy verzií v nástroji PyCharm
Akúkoľvek zmenu, ktorú sme nezapísali do commitu PyCharm detekuje a súbor so zmenou v projektovom okne v ľavom stĺpci označí modrou farbou. Červenou farbou označí súbory, ktoré nie sú pridané do repozitára.
Nástroj PyCharm umožňuje vykonať pridanie do indexu a vytvorenie commitu pomocou panela Commit v ľavom stĺpci programu. V ňom si jednoducho vyklikáme aké zmeny majú byť súčasťou nového commitu a dole napíšeme popis nového commitu.
Históriu repozitára vieme zobraziť v nástroji PyCharm v paneli Git, ktorý je v ľavom dolnom stĺpci.
Panel Commit, panel Git a diff zmeny v hlavnom okne
Úloha 7.10
-
Do projektu pridajte modul
util.pydef faktorial(n): if n == 0: return 1 return n * faktorial(n - 1) def fib(n): if n == 0: return 0 if n == 1: return 1 return fib(n - 1) + fib(n - 2) def obrat(s): if len(s) < 2: return s return s[-1] + obrat(s[:-1]) def main(): print("V tomto module su nasledovné funkcie:") print(f"- Faktoriál (faktoriál čísla 30 je {faktorial(30)})") print(f"- Fibonacciho číslo (fibonacci na pozícii 30 je {fib(30)})") print(f"- Obrátenie reťazca ({obrat("Obrátenie reťazca")})") if __name__ == '__main__': main() -
Pomocou PyCharmu ho pridajte do indexu a vytvorte nový commit s popisom "Modul util.py"
Zhrnutie cvičenia¶
Ťahák s najpoužívanejšími git príkazmi
- Nástroj git - distribuovaný systém kontroly verzií
- Konfiguráciu nástroja git robíme pomocou príkazu
git config -
git config --global user.name Janko Mrkvicka -
git config --global user.email [email protected]
- Konfiguráciu nástroja git robíme pomocou príkazu
- Vytvorenie git repozitára
- Repozitár vytvoríme pomocou príkazu
git init - Existujúci repozitár stiahneme pomocou príkazu
git clone <repo_url> - Súbor
.gitignoreobsahuje názvy súborov a adresárov, ktoré má git nástroj ignorovať
- Repozitár vytvoríme pomocou príkazu
- Working tree a index/staging
- Working tree - Aktuálne súbory na disku s ktorými pracujeme
- Index/staging - Sada zmien, ktoré chceme zapísať do repozitára
- Do indexu pridáme zmeny pomocou príkazu
git add - Stav repozitára zistíme príkazom
git status
- Commit je zápis súboru zmien v repozitári. Obsahuje:
- Samotné zmeny v súboroch nášho projektu
- Krátka správa s popisom, čoho sa zmena týka
- Dátum, kedy zápis zmien nastal
- Autora, ktorý zápis urobil
- Unikátny identifikátor zmeny, nazývaný hash (napríklad e3a1f5b7c2d4)
- Odkaz na predchádzajúci commit, aby sme vedeli vyskladať postupnosť zmien
- Zápis zmien do repozitára
- Zápis sady zmien do repozitára urobíme príkazom
git commit -m "popis zmien" - Zoznam posledných commitov vypíšeme pomocou príkazu
git log - Prehľad zmien, ktoré neboli pridané do indexu si vieme zobraziť pomocou
git diff - GUI nástroj na prehľad zmien a histórie spustíme príkazom
gitk
- Zápis sady zmien do repozitára urobíme príkazom
- Vetvy zmien
- Novú vetvu vytvoríme pomocou príkazu
git checkout -b <branch_name> - Do inej vetvy sa prepneme príkazom
git checkout <branch_name> - Inú vetvu zlúčime do aktuálne otvorenej pomocou
git merge <branch_name> - Zoznam všetkých vetiev zobrazíme príkazom
git branch -av
- Novú vetvu vytvoríme pomocou príkazu
Poznámky do zošita
V zošite je potrebné mať napísané aspoň tieto poznámky:
GIT
Konfiguráciu robíme pomocou git config
Repozitár vytvoríme pomocou git init
Existujúci repo stiahneme pomocou git clone <repo_url>
Do súboru .gitignore napíšeme, ktoré súbory má git ignorovať
Working tree - Aktuálne súbory na disku s ktorými pracujeme
Index/staging - Sada zmien, ktoré chceme zapísať do repozitára
git add - Do indexu pridáme zmeny pomocou
git status - Stav repozitára zistíme príkazom
Commit je zápis súboru zmien v repozitári. Obsahuje:
- Samotné zmeny v súboroch
- Krátka správa, čoho sa zmena týka
- Dátum zápisu
- Autora zápisu
- Unikátny identifikátor zmeny (hash)
- Odkaz na predchádzajúci commit
git commit -m "popis zmien" - Zápis sady zmien
git log - Zoznam posledných commitov
git diff - Prehľad zmien, ktoré nie sú ešte v indexe
gitk - GUI nástroj
Vetvy zmien
git checkout -b <branch_name> - vytvorenie novej vetvy
git checkout <branch_name> - prepnutie to inej vetvy
git merge <branch_name> - zlúčenie inej vetvy do aktuálnej
git branch -av - Zoznam všetkých vetiev
Skúšanie a kontrola vedomostí
Okruhy otázok na test:
- Čo je working tree
- Čo je index / staging area
- Čo obsahuje commit
- Základné príkazy na prácu s gitom





