ITV0101:git
Tagasi kursuse lehele: ITV0101
Juhend
GIT on versioonihaldustarkvara, mida pruugitakse paljudes tarkvaraettevõtetes dokumentatsiooni ja lähtekoodi haldamiseks.
Põhitegevused versioonihalduses, mida läheb vaja käesolevas aines, on:
- repositooriumi/salve kloonimine (git clone) (esmakordeks salve kopeerimiseks);
- failide lisamine versioonihaldusse (git add);
- muudatuste registreerimine mingis mõistlikus seisus (git commit);
- muudatuste üleslaadimine serverisse (git push) (commit registreerib muutused kohalikus masinas, alles push laeb üles!);
- muudatuste allalaadimine serverist ja kohalike muudatuste integreerimine (git pull).
Lisaks võib vaja minna:
- repositooriumi/salve oleku kuvamist (git status);
- repositooriumi/salve muudatuste ajaloo kuvamist (git log);
- mittevajalike failide kustutamist (git rm);
- ajaloo graafilist kuvamist (gitk).
GIT tarkvara võib kasutada mitmel viisil:
1) Kasutades GIT tarkvara Git veebilehelt. Git tarkvara tasub oma arvutisse laadida igal juhul, sest Git tarkvara abil on võimalik lihtsa vaevaga kontrollida, mis õnnestus git serverisse laadida. Juhend käsurealt kasutamiseks:Meedia:Git-howto.pdf
2) IntelliJ plugin...
3) Eclipse-st kasutades EGit pluginat. Juhend GIT-i kasutamiseks Eclipse'is: Meedia:Egit-howto.pdf
Näiteks, käivitades Windows Exploreris hiire parema nupu alt kontekstitundlikust menüüst Git Gui saate
kloonida repositooriumi/salve https://teie-ttu-uni-id-kasutajanimi@git.ttu.ee/kursused/iti0011/teie-ttu-uni-id-kasutajanimi.git (NB! see link brauseris ei tööta!) valitud kataloogi. NB! Uni-ID kasutajanimes peavad olema KÕIK VÄIKESED TÄHED!
Seejärel saab kontrollida, kas serverist kloonitud kataloogis on kõik vajalikud failid olemas.
Küsimuste ja probleemide korral kirjutage: git-admin@cs.ttu.ee
Lisainfo GIT raamatust (inglise keeles).
git'i kasutamine aines
Kõik ülesanded tuleb laadida git'i. Ülesanne peab olema kaustas p<number>, kus <number> on probleemi number UVA lehel (näiteks p101, p457). Fail peab olema ühel järgmistest kujudest (kus <number> on samamoodi UVA probleemi number): * p<number>/p<number>.c * p<number>/p<number>.cpp * p<number>/p<number>.py * p<number>/p<number>.java * p<number>/src/p<number>.java (kui kasutate Eclipse'i või intelliJ'd, tekitab see src kausta automaatselt - las see jääb)
Sammud projekti/lahenduse giti panemisel:
git clone https://uniid@git.ttu.ee/ained/itv0101/uniid.git
cd uniid
mkdir p123
cd p123
Siia kausta tuleks nüüd luua fail, näiteks p123.java .
git add p123.java
git commit -m "kommentaar seoses tehtud muudatustega, näiteks jagamise viga parandatud"
git push origin master
Probleemid
Probleemide vältimiseks tehke alati enne koodimuudatusi repositooriumile git pull
. See tõmbab uusima versiooni serverist. Kui see samm jääb tegemata, võib juhtuda, et teie failide seis arvutis läheb konflikti serveris oleva seisuga. Selle vältimiseks on alati hea kõigepealt teha pull
, seejärel koodi muuta ja seejärel commit
ja push
.
Repositooriumi kloonimine serveris olevasse seisu
Tekkinud konfliktide puhul võib juhtuda, et te ei suuda erinevaid harusid kokku ühendada (merge). Sellisel olukorras on üks võimalik lahendus see, et kloonite kogu salve uuesti ja laete oma lahenduse sinna. Selleks tehke läbi kõik needsamad sammud, mis te giti kasutuselevõtmise alguses tegite:
- tehke oma koostatud failidest (mida veel repos pole) igaks juhuks koopia
git clone
git pull
- kopeerite oma projekti/failid
git add
(uue failid indeksisse)git commit
(kohalikku salvehoidlasse)git push
(serverisse).