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 GitHub.
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).
Vo virtuálke s repozitárom xv6 zadajte príkazy:
1 2 |
git config --global user.name "Meno Priezvisko" git config --global user.email meno@domena.tld |
kde nahradíte reťazec Meno Priezvisko
svojím menom a namiesto meno@domena.tld
uvediete svoju e-mailovú adresu.
Prejdite do priečinka ~/xv6-labs-2023
a zadajte príkaz git remote add github git@github.com:<meno>/<nazov>.git
, kde <meno>
je vaše meno na GitHube 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 github
.
ssh-keygen -t ed25519 -C "meno@domena.tld"
, kde meno@domena.tld
je vaša e-mailová adresa. Prvú výzvu na umiestnenie kľúča môžete potvrdiť klávesou Enter bez zadania vstupu (použije sa predvolená hodnota). Heslovú frázu (passphrase) môžete zadať, ak chcete kľúč chrániť touto frázou.ssh-add ~/.ssh/id_ed25519
.cat ~/.ssh/id_ed25519.pub
. Na GitHube otvorte nastavenia SSH a GPG kľúčov a zvoľte Nový SSH kľúč. Dajte mu vhodný názov a do políčka Key prekopírujte celý vypísaný riadok (začína reťazcom ssh-ed25519
a končí vaším e-mailom).~/.ssh/id_ed25519
si uschovajte na online úložisku. Na ďalšom cvičení ho nahráte do virtuálky a rýchlejšie si stiahnute váš repozitár.push
). Urobíte to príkazom git push -u github
(git sa ešte opýta na overenie kľúča servera github.com, ktoré potvrdíte zadaním yes a stlačením Enter). 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 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!
Na virtuálke s repozitárom xv6 zadajte príkazy:
1 2 |
git config --global user.name "Meno Priezvisko" git config --global user.email meno@domena.tld |
kde nahradíte reťazec Meno Priezvisko
svojím menom a namiesto meno@domena.tld
uvediete svoju e-mailovú adresu.
Prejdite do priečinka xv6-labs-2023
a zadajte príkaz git remote add github git@github.com:<meno>/<nazov>.git
, kde <meno>
je vaše meno na GitHube 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 github
.
~/.ssh/id_ed25519
.ssh-add ~/.ssh/id_ed25519
. Predtým musíte pravdepodobne nastaviť prístup ku kľúču len pre seba (chmod u=rw,go= ~/.ssh/id_ed25519
), ináč autentifikačný agent nedovolí nahrať kľúč, ktorý je prístupný aj pre iných používateľov.git pull github
.Táto sekcia popisuje bežné úkony, ktoré budete s repozitárom vykonávať.
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:
1 |
git add user/sleep.c Makefile |
Týmto ste do indexu pridali súbory user/sleep.c
a Makefile
. Potom commit potvrdíte príkazom:
1 |
git commit -m 'feat: implement sleep' |
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 github
. Týmto príkazom sa zmeny v aktuálnej vetve nahrajú na váš vzdialený repozitár na GitHube.
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 GitHube 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 GitHube) a prepnete sa na ňu príkazom:
1 |
git switch -c <vetva> --track github/<vetva> |
Postup v tejto sekcii ráta s tým, že už máte vytvorený vlastný vzdialený repozitár podľa návodu v sekcii Vytvorenie vzdialeného repozitára a prvé nahratie.
Ak ešte nemáte nakonfigurovaný git, na vašom PC zadajte príkazy:
1 2 |
git config --global user.name "Meno Priezvisko" git config --global user.email meno@domena.tld |
kde namiesto Meno Priezvisko
uvediete svoje meno a namiesto meno@domena.tld
uvediete svoju e-mailovú adresu.
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:
1 2 |
git clone git://g.csail.mit.edu/xv6-labs-2023 cd xv6-labs-2023 |
Prejdite do priečinka xv6-labs-2023
a zadajte príkaz git remote add github git@github.com:<meno>/<nazov>.git
, kde <meno>
je vaše meno na GitHube a <nazov>
je názov vášho repozitára.
Týmto ste do lokálneho repozitára pridali odkaz na vzdialený repozitár (remote) s názvom github
.
ssh-keygen -t ed25519 -C "meno@domena.tld"
, kde meno@domena.tld
je vaša e-mailová adresa. Prvú výzvu na umiestnenie kľúča môžete potvrdiť klávesou Enter bez zadania vstupu (použije sa predvolená hodnota). Heslovú frázu (passphrase) môžete zadať, ak chcete kľúč chrániť touto frázou.ssh-add ~/.ssh/id_ed25519
.cat ~/.ssh/id_ed25519.pub
. Na GitHube otvorte nastavenia SSH a GPG kľúčov a zvoľte Nový SSH kľúč. Dajte mu vhodný názov a do políčka Key prekopírujte celý vypísaný riadok (začína reťazcom ssh-ed25519
a končí vaším e-mailom).git pull github
.1 štandardne nano, ale viete si ho zmeniť na iný pomocou príkazu git config --global core.editor <editor>