Všetky domáce úlohy budete odovzdávať na automatické hodnotenie pomocou systému na správu verzií GIT.
Tento systém môžte využiť aj na synchronizáciu práce na cvičení a doma. Nestane sa Vám, že na cvičení budete sedieť zbytočne, lebo domácu úlohu máte rozpracovanú na inom počítači. Pomocou príkazu git pull
si natiahnete zmeny zo vzdialeného repozitára.
Prihlásenie sa na pracovný server
Prihláste sa na stroj na ktorom budete pracovať.
Máte aktivovaný prístup na školský server sigma.tuke.sk
.
Na pripojenie sa zo stroja s OS Windows použite klienta PUTTY. Prihlasovacie meno a heslo
je rovnaké ako do IS MAIS.
Na pripojenie budete potrebovať prístup zo školskej siete. Pre prácu s vlastným počítačom si aktivujte Eduroam. TUNET Geest nefunguje. Pre prácu doma si aktivujte [TUKE VPN](https://uvt.tuke.sk/wps/portal/uv/sluzby/vzdialeny-pristup-vpn.
Ak používate klienta PuTTY, do políčka "Host" napíšte sigma.tuke.sk
.
Ak máte k dispozícii poriadny príkazový riadok (napr Terminal alebo aj cmd
), na prihlásenie použijete príkaz:
ssh ab123cd@sigma.tuke.sk
Po prihlásení si overte aké súbory máte k dispozícii:
ls
V prípade, že máte na Vašom počítači aktivované prostredie WSL a aplikáciu Terminál, môžete pracovať lokálne. Stačí si spustiť príkazový riadok Ubuntu cez Terminál.
Vytvorenie súkromného kľúča
Na to aby ste mohli posielať podania z lokálneho stroja, musíte odoslať
Váš verejný SSH kľúč. Kľúč nájdete v súbore ~/.ssh/id_rsa.pub
a
zobrazíte ho príkazom cat
.
cat ~/.ssh/id_rsa.pub
Znak ~
znamená domovský adresár. Na PC ho nájdete v ľavom hornom rohu klávesnice.
Ak sa tam taký súbor nenachádza, vytvorte ho príkazom:
ssh-keygen
Po zadaní príkazu iba stláčajte ENTER. Nastavené cesty súborov neprepisujte! Nezadávajte žiadne heslo.
Obsah súboru id_rsa.pub
si skopírujte do schránky.
Metóda kopírovania textu pomocou schránky sa líši od použitého SSH klienta. V prípade PUTTY zobrazíte súbor, označíte obsah
a skopírujte ho do schránky pomocou stlačenia ľavého a pravého tlačítka myši naraz.
cat ~/.ssh/id_rsa.pub
Aktivácia vzdialeného repozitára
Prihláste sa na KEMT Git. Použite svoj študentský login a heslo (ktorým sa prihlasujete do MAISu).
V menu vpravo hore (=) vyhľadajte položku "/Profile Settings/Settings/SSH ang GPG Keys/Add Key".
Do okienka pomocou schránky vložíte obsah súboru `~/.ssh/id_rsa.pub`.
Vytvorenie vzdialeného repozitára
Vytvorte repozitár do ktorého budete posielať Vaše zadania (+ New Repository) a jeho viditeľnosť nastavte na "Private", aby ste zabránili neželanej zhode s iným zadaním. Zaškrtnite políčko 'Visibility' (Make repository private).
Repozitár nazvite podľa inštrukcií Vášho cvičiaceho, napr. usaa24
.
Vytvorenie lokálneho repozitára
Prihláste sa na pracovný server sigma.tuke.sk
.
Ak ste vložili SSH kľúč, môžte vytvoriť lokálny repozitár, ktorý bude
spojený so vzdialeným repozitárom. Lokálnu kópiu vzdialeného repozitára
vytvoríme príkazom git clone
, kde ako argument pridáte URL vzdialeného
repozitára, napr.:
git clone git@git.kemt.fei.tuke.sk:ab123cd/usaa24.git
Namiesto ab123cd
napíšte Váš login do MAISu. Vytvorí sa priečinok ktorý sa volá rovnako ako vzdialený repozitár.
Všetky zadania budete odovzdávať pomocou tohto repozitára. Pre každé zadanie si vytvoríte nový adresár a dáte do neho súbory, ktoré sú súčasťou zadania:
cd usaa24
mkdir du1
vim program.c
Vypracované zadanie odovzdáte tak, že ho odošlete na vzdialený repozitár a požiadate o automatické hodnotenie.
Potvrdenie zmien
Zmeny je najprv potrebné potvrdiť. Pre potvrdenie musíme súbor najprv pridať:
git add program.c
a až potom vykonať potvrdenie, ktoré sa uloží do lokálneho repozitára. Súčasťou potvrdenie je správa, ktorá opisuje zmenu:
git commit -m "funguje"
Pokiaľ je zmena jednoduchá a týka sa súborov, ktoré už boli v minulosti
potvrdené, vieme si git commit
a git add
spojiť do jedného príkazu:
git commit -am "funguje"
Stav zmien si vieme skontrolovať pomocou:
git status
Odoslanie súborov
Potvrdené zmeny odošlete pomocou príkazu:
git push origin master
argumenty origin
a remote
už neskôr nie je potrebné zadávať, takže pre
odoslanie stačí:
git push
Riešenie konfliktov
V prípade, že používame viac lokálnych repozitárov a jeden vzdialený tak môže vzniknúť viac verzií toho istého súboru. Pred tým ako začneme prácu tak je dobré získať najnovšiu verziu zo vzdialeného repozitára:
V prípade, že vzniknú konflikty tak:
Potvrdíme všetky zmeny:
git commit -am "zmeny"
Skúsime získať najnovšiu verziu zo vzdialeného repozitára:
git pull
Ak sa zobrazí zoznam konfliktných súborov, tak ich všetky upravíme a rozhodneme ktorá verzia je tá správna:
vim konfliktny_subor.c
Potvrdíme zmeny:
git commit -m "merge"
Odošleme zmeny:
git push
Niektoré užitočné príkazy Git
Vymazanie súboru alebo adresára:
git rm -r adresar
git rm subor
# Zmazanie je potrebné potvrdiť
git commit -m "zmazane subory"
Presun súboru alebo adresára v rámci repozitára:
git mv subor
# Presun je potrebne potvrdiť
git commit -m "presun suboru"
Zistenie stavu zmien:
git status
Vrátenie sa k predošlým zmenám:
git checkout
Zobrazenie histórie potvrdených zmien:
git log
Zobrazenie manuálovej stránky:
git help
Pridanie nových zmien ktoré odstraňujú už potvrdené zmeny:
git revert
Vymazanie z histórie potvrdených zmien alebo zrušenie oblasti zmien:
git reset
Ďalšie informácie
- Kniha GIT po česky