Synchronizácia repozitára

Táto stránka poskytuje základný návod, ako synchronizovať repozitár na virtuálke s vaším vzdialeným repozitárom umiestneným na službe GitLab.

Na prvom cvičení postupujte podľa sekcie Vytvorenie vzdialeného repozitára a prvé nahratie. Na ďalších cvičeniach potom podľa sekcie Stiahnutie repozitára na cvičení.

V prípade, že máte ťažkosti s nejakým príkazom, alebo chcete zistiť, čo robí, preštudujte si jeho manuálovú stránku: man git. Manuálovú stránku má tiež každý príkaz gitu, napr. man git commit.

Ak si chcete naštudovať úvod pre prácu s gitom, pozrite si manuálové stránky man gittutorial (úvodný tutoriál) a man giteveryday (základné príkazy).

Vytvorenie vzdialeného repozitára a prvé nahratie

Tento návod platí len pre prvé cvičenie na školských počítačoch.

  1. Ak ešte nemáte konto na gitlab.com, vytvorte si ho.
  2. Ak ste si pri registrácii na GitLab nenastavili heslo, nastavte si ho v príslušnej sekcii nastavení.
  3. Vytvorte nový projekt na službe GitLab. Môžete ho ľubovoľne pomenovať. Zrušte zaškrtnutie políčka Initialize repository with a README.
  4. Na PC s repozitárom xv6 zadajte príkazy:

    kde nahradíte reťazec Meno Priezvisko svojím menom a namiesto meno@domena.tld uvediete svoju e-mailovú adresu.

  5. Nahratie lokálneho repozitára z počítača v učebni na vzdialený repozitár pomocou príkazu git push.
    Obr. 1: Nahratie lokálneho repozitára z počítača v učebni na vzdialený repozitár pomocou príkazu git push.
  6. Prejdite do priečinka ~/xv6-labs-2024 a zadajte príkaz git remote add gitlab https://gitlab.com/<meno>/<nazov>.git, kde <meno> je vaše meno na GitLabe a <nazov> je názov vášho repozitára (ostré zátvorky tam nezadávajte).

    Týmto ste do lokálneho repozitára pridali odkaz na vzdialený repozitár (remote) s názvom gitlab.

  7. Po vytvorení vzdialeného repozitára (teda iba teraz) musíte nahrať lokálny repozitár na vzdialený repozitár (operácia push). Urobíte to príkazom git push -u gitlab. Git si potom vyžiada meno a heslo na pripojenie do vzdialeného repozitára, zadajte tam vaše prihlasovacie údaje pre GitLab. Pre vizualizáciu tejto operácie pozri obr. 1. Na ďalších cvičeniach už budete začínať operáciou pull, kedy si stiahnete zmeny zo vzdialeného repozitára do lokálneho vo virtuálke.

Po dokončení práce na cvičení (alebo doma) by ste si mali túto prácu nahrať na váš vzdialený repozitár. Na to je potrebné vytvoriť commit a vykonať operáciu push. Postupujte podľa návodu v sekcii Commit a push.

Obraz disku na virtuálke v učebni je nemeniteľný a po vypnutí virtuálky sa automaticky resetuje. Ak si prácu nenahráte na vzdialený repozitár, prídete o svoje zmeny!

Stiahnutie repozitára na cvičení

Tento návod platí pre prácu na školských počítačoch, keď už máte vytvorený vlastný repozitár s nahratými zdrojákmi.

  1. Na virtuálke s repozitárom xv6 zadajte príkazy:

    kde nahradíte reťazec Meno Priezvisko svojím menom a namiesto meno@domena.tld uvediete svoju e-mailovú adresu.

  2. Stiahnutie zmien z vlastného vzdialeného repozitára do lokálneho repozitára na počítači v učebni.
    Obr 2. Stiahnutie zmien z vlastného vzdialeného repozitára do lokálneho repozitára na počítači v učebni.
  3. Prejdite do priečinka xv6-labs-2024 a zadajte príkaz git remote add gitlab https://gitlab.com/<meno>/<nazov>.git, kde <meno> je vaše meno na GitLabe a <nazov> je názov vášho repozitára (ostré zátvorky tam nezadávajte).

    Týmto ste do lokálneho repozitára pridali odkaz na vzdialený repozitár (remote) s názvom gitlab.

  4. Stiahnite svoj vzdialený repozitár príkazom git pull gitlab (vizualizácia na obr. 2).
  5. Pre aktualizáciu repozitára so serverom MIT ďalej postupujte podľa inštrukcií cvičenia.

Bežná práca s gitom

Táto sekcia popisuje bežné úkony, ktoré budete s repozitárom vykonávať.

Commit a push

Commity by mali predstavovať nejakú zmysluplnú a ucelenú zmenu kódu. Môže sa jednať o pridanie novej funkcionality, opravu chyby, pridanie dokumentácie alebo iné. Jedna úloha na cvičení obvykle predstavuje takúto ucelenú funkcionalitu. Po dokončení tejto úlohy by ste teda mali úpravy commitnúť do repozitára. Najprv určíte, ktoré súbory budú súčasťou ďalšieho commitu a pridáte ich do indexu:

Týmto ste do indexu pridali súbory user/sleep.c a Makefile. Potom commit potvrdíte príkazom:

Proces uloženia zmien do lokálneho repozitára (kroky 1. a 2.) a nahratie zmien na vzdialený repozitár (krok 3.)
Obr 3. Proces uloženia zmien do lokálneho repozitára (kroky 1. a 2.) a nahratie zmien na vzdialený repozitár (krok 3.)

Ak nepoužijete prepínač -m, otvorí sa editor1 a v ňom môžete pohodlnejšie napísať dlhšiu správu. Pre štruktúru správ postupujte podľa špecifikácie Conventional Commits 1.0.0.

Nový commit sa zatiaľ nachádza iba vo vašom lokálnom repozitári. Aby ste ho umiestnili na váš vzdialený repozitár, je potrebné zavolať git push gitlab. Týmto príkazom sa zmeny v aktuálnej vetve nahrajú na váš vzdialený repozitár na GitLabe. Kroky, ktoré ste vykonali sú vizualizované na obr. 3.

Prepnutie na novú vetvu zo vzdialeného repozitára

Pri prepínaní vetvy príkazom git switch <vetva> git automaticky vytvorí lokálnu vetvu a prepojí ju so vzdialenou vetvou podľa jej názvu. Táto vzdialená vetva sa označuje ako upstream lokálnej vetvy. Problém nastane, ak existujú dve vetvy s rovnakým názvom na rôznych vzdialených repozitároch. Taká situácia môže nastať, ak vo svojom vzdialenom repozitári na GitLabe už máte vetvu, ktorá zároveň existuje na repozitári MIT a lokálny repozitár o oboch vzdialených vetvách vie. V takomto prípade novú vetvu vytvoríte (podľa vetvy na GitLabe) a prepnete sa na ňu príkazom:

Stiahnutie repozitára na vlastný PC

  1. Ak ešte nemáte vytvorený vlastný vzdialený repozitár na službe GitLab, pokračujte týmito troma krokmi:
    1. Ak ešte nemáte konto na gitlab.com, vytvorte si ho.
    2. Ak ste si pri registrácii na GitLab nenastavili heslo, nastavte si ho v príslušnej sekcii nastavení.
    3. Vytvorte nový projekt na službe GitLab. Môžete ho ľubovoľne pomenovať. Zrušte zaškrtnutie políčka Initialize repository with a README.
  2. Ak ešte nemáte nakonfigurovaný git, na vašom PC zadajte príkazy:

    kde namiesto Meno Priezvisko uvediete svoje meno a namiesto meno@domena.tld uvediete svoju e-mailovú adresu.

  3. Ak nerobíte na nami poskytnutej virtuálke, musíte si naklonovať xv6 zo serverov MIT. V domovskom (alebo vami vybranom) priečinku zadajte príkazy:

  4. Proces prípravy lokálneho repozitára na vlastnom PC: naklonovanie repozitára z MIT a stiahnutie zmien z osobného vzdialeného repozitára.
    Obr. 4 Proces prípravy lokálneho repozitára na vlastnom PC: naklonovanie repozitára z MIT a stiahnutie zmien z osobného vzdialeného repozitára.
  5. Prejdite do priečinka ~/xv6-labs-2024 a zadajte príkaz git remote add gitlab https://gitlab.com/<meno>/<nazov>.git, kde <meno> je vaše meno na GitLabe a <nazov> je názov vášho repozitára (ostré zátvorky tam nezadávajte).

    Týmto ste do lokálneho repozitára pridali odkaz na vzdialený repozitár (remote) s názvom gitlab.

  6. Stiahnite commity zo svojho vzdialeného repozitára príkazom git pull gitlab. Kroky, ktoré ste urobili sú vizualizované na obr. 4.
  7. Pre aktualizáciu repozitára so serverom MIT ďalej postupujte podľa inštrukcií cvičenia.

Poznámky:

1 štandardne nano, ale viete si ho zmeniť na iný pomocou príkazu git config --global core.editor <editor>