14. diel - Git - Vzdialený repositár - Práca s repositárom
V minulej lekcii, Git - Vzdialený repositár - Vytvorenie a nastavenie repositára , sme si vytvorili vzdialený repositár a ukázali si jeho dôležité nastavenia vrátane vytvorenia Issue, odkazu a prístupu pre užívateľov.
V dnešnom Git tutoriále budeme pokračovať v práci so vzdialeným repositárom. Ukážeme si, ako do neho nahrať súbory, ako z neho stiahnuť aktualizácie a ako uzavrieť jeho Issue.
Nahranie súborov na vzdialený repositár
V lekcii Vzdialený repositár - Vytvorenie a nastavenie repositára, sme si vytvorili odkaz z nášho lokálneho repositára na repositár vzdialený. Teraz tento odkaz využijeme na nahranie a stiahnutie aktualizácií zo vzdialeného repositára do nášho lokálneho repositára.
Súbory do vzdialeného repositára môžeme zaslať pomocou verzovacieho nástroja Git. Je tiež možné súbory do vzdialeného repositára nahrať priamo na platforme GitHub. Skúsme si oba spôsoby, aby sme následne videli problém pri sťahovaní aktualizácií zo vzdialeného repositára.
Zaslanie súborov cez Git
V Gite slúži na nahranie súborov do vzdialeného repositára príkaz
git push
. Príkaz pošle aktuálnu vetvu na server. Ak na serveri
vetva so zadaným menom existuje, tak ju aktualizuje, inak ju vytvorí. Pokiaľ
chceme poslať vetvu, ktorá má na serveri iné meno použijeme príkaz vo
formáte:
Pokiaľ by sme
použili príkaz git push
bez parametrov, Git by automaticky poslal
zmeny na zdroj origin
.
Presuňme sa do nášho lokálneho repositára. Nahráme náš lokálny repositár na vzdialený server príkazom:
Získame nasledujúci výpis o priebehu:
Po úspešnom nahraní sa vrátime do repositára na platforme GitHub a aktualizujeme stránku. Náš repositár sa aktualizoval podľa posledného uskutočneného commitu z lokálneho repositára:
Na obrázku, v hlavičke, vidíme posledný uskutočnený commit. Pri každom súbore vidíme, kedy bol vytvorený a názov commitu, ktorým bol ovplyvnený. V pravej lište vidíme sekciu Languages, do ktorej GitHub zaznamená použité programovacie jazyky a šablóny, ktoré rozoznal.
Nahranie súborov na platforme GitHub
Na vzdialenom repositári máme možnosť nahrať súbory, alebo ich priamo
vytvoriť. Skúsime si to na vytvorenie súboru README.md
.
V hlavičke repositára klikneme na Add file av otvorenej ponuke
vyberieme Create new file:
Otvorí sa nám tento editor súboru:
Súbor pomenujeme README.md
a do popisu súboru vložíme
nasledujúci text:
Editor súboru teraz vyzerá takto:
Súbor vytvoríme kliknutím na Commit changes...:
Budeme vyzvaní na vytvorenie commitu. Do poľa Commit message
vložíme názov commitu Create README.md
a do Extended
description potom Vytvoření README.md
:
Kliknutím na Commit changes commit vytvoríme. Repositár sa
aktualizuje av hlavičke sa zobrazí commit s názvom
Create README.md
. Novo vytvorený súbor README.md
je
pridaný do repositára:
GitHub automaticky použije súbor README.md
ako
stručnú dokumentáciu.
Stiahnutie aktualizácií zo vzdialeného repositára
Čo sa stane, keď sa pokúsime nahrať zmeny z nášho lokálneho
repositára na vzdialený repositár, ktorý už má iné zmeny? To si práve
teraz predvedieme 😀
Najskôr náš lokálny repositár upravíme. Spustite nižšie uvedené
príkazy, ktorými upravíme súbor testovaci_soubor.txt
v našom
lokálnom repositári, vytvoríme commit a pokúsime sa nahrať zmeny na náš
vzdialený repositár:
Po spustení príkazu
git push origin main
sa nám zobrazí táto chyba:
Táto chybová správa
popisuje neúspešný pokus aktualizácie vzdialeného repositára, pretože
obsahuje zmeny, ktoré v našom lokálnom repositári nie sú dostupné. Najprv
teda musíme si tieto zmeny stiahnuť do nášho lokálneho repositára pomocou
príkazu git fetch
alebo git pull
.
Príkaz git fetch
Príkaz slúži na sťahovanie nových dát zo vzdialeného úložiska bez toho, aby ich integroval do našich pracovných súborov. Umožňuje nám získať informácie o zmenách, nových vetvách, či commit správach bez toho, aby akokoľvek narušil našu pracovnú kópiu.
Formát použitia príkazu git fetch je nasledujúci:
Na stiahnutie všetkých
registrovaných vzdialených repositárov a ich vetiev by sme použili príkaz
git fetch
vo formáte:
Po stiahnutí aktualizácií
príkazom git fetch
by sme sa prepli na stiahnutú vetvu a
následne vetvy zlúčili príkazom git merge
.
Príkaz git pull
Na rozdiel od príkazu git fetch
, príkaz git pull
nielen stiahne obsah zo vzdialeného úložiska, ale taktiež aktualizuje
miestne úložisko. Príkaz git pull
je v skutočnosti kombináciou
príkazov git fetch
a git merge
. V prvej fáze
operácie príkaz git pull
vykoná príkaz git fetch
vymedzený na miestnu vetvu, na ktorú smeruje HEAD
. Akonáhle je
obsah stiahnutý, príkaz git pull
vstúpi do pracovného postupu
zlúčenia: Vytvorí nový commit zlúčenia a HEAD
aktualizuje
tak, aby naň ukazoval.
Teraz si príkaz git pull
vyskúšame na aktualizáciu nášho
miestneho repositára, v ktorom spustíme príkaz:
Rovnako ako pri
git merge
získame popis procesu zlúčenia:
Teraz je náš lokálny
repositár aktualizovaný. Spustíme príkaz git push
a nahráme
posledný commit na vzdialený repositár:
Naše lokálne zmeny sú úspešne nahrané na vzdialenom repositári 😀
Uzavretie Issue u vzdialeného repositára
V lekcii Vzdialený repositár - Vytvorenie a nastavenie repositára sme si ukázali tvorbu Issue. Teraz si ukážeme uzavretie Issue.
Jednotlivé Issue môžeme uzavrieť dvoma spôsobmi:
- Close as completed (Zavrieť ako dokončené) - Issue bude označené ako vyriešené.
- Close as not completed (Zavrieť ako nedokončené) - Issue bude označené ako nevyriešené.
Testovací issue
ako
vyriešené.
Uzavretie Issue ako uzavreté
V hornom menu repositára klikneme na Issues:
Otvorí sa nám stránka so všetkými Issues vytvorených pre náš repositár:
Kliknutím na Testovaciu issue si ho otvoríme:
Pred uzavretím Issue je dôležité napísať komentár popisujúci spôsob,
akým bola situácia vyriešená. Problém, ktorý je zastúpený v Issue s id
#1
indikuje, že repositár je prázdny. Napíšeme teda správu o
nahraní súborov do repositára. Do textového poľa napíšeme
Soubory do repositáře byly nahrány
:
Issue uzavrieme klikom na šípku vedľa tlačidla Close with comment:
Otvorí sa nám ponuka ponúkajúca tie dve vyššie popísané voľby uzavretia Issue. Kliknite na Close as completed. Issue sa uzavrie a stránka sa aktualizuje. Po tejto akcii vidíme, že značka Open sa zmenila na Closed, čo označuje uzavretie Issue. Súčasne je pridaný náš komentár a identifikačná značka signalizujúca uzavretie Issue:
Týmto sme úspešne vyriešili Issue u nášho repositára.
V nasledujúcom kvíze, Kvíz - Kolízie medzi vetvami a vzdialený repositár v Gitu, si vyskúšame nadobudnuté skúsenosti z predchádzajúcich lekcií.