ITV0101:git

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti

Tagasi kursuse lehele: ITV0101

Oluline info: TL;DR

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)

Faili alguses peab olema kommentaarina:

/**
 * @author: <uniid1>
 * @author: <uniid2>
 */
või
 """
 @author: <uniid1>
 @author: <unnid2>
 """

näiteks

/**
 * @author: mari.anne
 * @author: sii.pluss.pluss
 */

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).