Erinevus lehekülje "ITI0011:git" redaktsioonide vahel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
 
(ei näidata 2 kasutaja 11 vahepealset redaktsiooni)
7. rida: 7. rida:
 
Põhitegevused versioonihalduses, mida läheb vaja käesolevas aines, on:
 
Põhitegevused versioonihalduses, mida läheb vaja käesolevas aines, on:
  
* repositooriumi kloonimine (git clone);
+
* repositooriumi/salve kloonimine (git clone) (esmakordeks salve kopeerimiseks);
 
* failide lisamine versioonihaldusse (git add);
 
* failide lisamine versioonihaldusse (git add);
 
* muudatuste registreerimine mingis mõistlikus seisus (git commit);
 
* muudatuste registreerimine mingis mõistlikus seisus (git commit);
* muudatuste üleslaadimine serverisse (git push);
+
* muudatuste üleslaadimine serverisse (git push) (commit registreerib muutused kohalikus masinas, alles push laeb üles!);
 
* muudatuste allalaadimine serverist ja kohalike muudatuste integreerimine  (git pull).
 
* muudatuste allalaadimine serverist ja kohalike muudatuste integreerimine  (git pull).
  
 
Lisaks võib vaja minna:
 
Lisaks võib vaja minna:
  
* repositooriumi oleku kuvamist (git status);
+
* repositooriumi/salve oleku kuvamist (git status);
* repositooriumi muudatuste ajaloo kuvamist (git log);
+
* repositooriumi/salve muudatuste ajaloo kuvamist (git log);
 
* mittevajalike failide kustutamist (git rm);
 
* mittevajalike failide kustutamist (git rm);
 
* ajaloo graafilist kuvamist (gitk).
 
* ajaloo graafilist kuvamist (gitk).
22. rida: 22. rida:
 
GIT tarkvara võib kasutada mitmel viisil:
 
GIT tarkvara võib kasutada mitmel viisil:
  
1) Eclipse-st kasutades EGit pluginat. Juhend GIT-i kasutamiseks Eclipse'is: [[Meedia:Egit-howto.pdf]]
+
1) Kasutades GIT tarkvara [http://git-scm.com 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) Kasutades GIT tarkvara [http://git-scm.com Git veebilehelt]. Git tarkvara tasub oma arvutisse laadida igal juhul, sest
+
2) IntelliJ plugin...
Git tarkvara abil on võimalik lihtsa vaevaga kontrollida, mis õnnestus git serverisse laadida. Näiteks, käivitades Windows Exploreris hiire parema nupu alt kontekstitundlikust menüüst Git Gui saate
 
kloonida repositooriumi https://teie-ttu-uni-id-kasutajanimi@git.ttu.ee/kursused/iti0011/teie-ttu-uni-id-kasutajanimi.git valitud kataloogi.
 
Seejärel saab kontrollida, kas serverist kloonitud kataloogis on kõik vajalikud failid olemas.
 
  
 +
3) Eclipse-st kasutades EGit pluginat. Juhend GIT-i kasutamiseks Eclipse'is: [[Meedia:Egit-howto.pdf]]
  
  
Küsimuste ja probleemide korral kirjutage: git-admin@cs.ttu.ee
+
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 [http://git-scm.com/book GIT raamatust (inglise keeles)].
 
Lisainfo [http://git-scm.com/book GIT raamatust (inglise keeles)].
37. rida: 42. rida:
 
== git'i kasutamine aines ==
 
== git'i kasutamine aines ==
  
Kõik kodused ülesanded tuleb laadida git'i. Koduülesanne peab olema kaustas HW1, HW2, HW3, HW4 vastavalt sellele, mitmenda kodutöö lahendus see on. Koduülesandena võite laadida terve Eclipse'i projekti (HW1/src/pakett/MinuFail.java) või otse (HW1/MinuFail.java).
+
Kõik harjutus- ja kodused ülesanded tuleb laadida git'i. Harjutustunniülesanded peavad olema kaustades EX01, EX02 jne. Kodused ülesanded peavad olemas kaustades HW01, HW02, HW03, HW04. Number näitab mõlemal juhul järjekorranumbrit. Vastav viide on ka ülesande kirjelduse juures.
 +
Git'i võib laadida terve projekti (HW01/src/pakett/MinuFail.java) või otse lahendusefailid (HW01/MinuFail.java). Tähelepanu, kui laete käsitsi, peate olema kindlad, et programm selliselt ka käivitub. Soovitatav on laadida terve projekt selliselt, et lähtekoodi juurkaust (või mõni selle ülemkaust) on git'i kaustas (näiteks EX01 või HW01).
 +
 
 +
Sammud projekti/lahenduse giti panemisel:
 +
 
 +
git clone https://uniid@git.ttu.ee/ained/iti0011/uniid.git
 +
 
 +
cd uniid
 +
 
 +
mkdir EX00
 +
 
 +
cd EX00
 +
 
 +
Siia kausta tuleks nüüd luua fail, näiteks Main.java .
 +
 
 +
git add Main.java
 +
 
 +
git commit -m "kommentaar seoses tehtud muudatustega, näiteks jagamise viga parandatud"
 +
 
 +
git push origin master
 +
 
 +
 
 +
 
 +
=== Projekti nime muutmine git'is ===
 +
 
 +
Kui oled juba oma koodi üles laadinud vale kausta nimega, siis siin on juhend, kuidas kausta nime muuta läbi Eclipse'i. Juhend eeldab, et tudeng on laadinud esimese kodutöö üles kausta "Esimene". Oleks vaja laadida aga "HW1".
 +
 
 +
Kui teha projektile "rename", siis projekti nimi eclipse'is muutub ära, aga kausta nimi, milles projekt füüsiliselt on, jääb samaks. See kaust peaks asuma kasutaja "git" kaustas (windowsis c:\Users\kasutaja\git\eesnimi.perenimi näiteks).
 +
 
 +
Ilus ja eelistatud viis, kuidas projekti/kausta nime muuta (saate teha Git Bash'ist): http://stackoverflow.com/a/11183844/122128
 +
Hiljem peate projekti uuesti importima.
 +
 
 +
Saab ka sedasi (aga see sisuliselt kustutab vana kausta maha ja lisab uue, eelmine meetod muudab kausta nime git'is):
 +
# projekti peal parem klikk -> Refactor -> Move ...
 +
# nüüd tuleks ära muuta projekti kausta nimi (näiteks kui enne oli "Esimene", siis panna "HW1"; pikalt siis: c:\users\ago\git\ago.luberg\Esimene=> c:\users\ago\git\ago.luberg\HW1)
 +
# igaks juhuks võib projekti nime ka ära muuta (kuigi minu teada see git'i ei mõjuta - lihtsalt endal on pilt selgem). parem klikk projekti peal -> Refactor -> Rename (muuta siis ka "HW1"-ks).
 +
# projekti peal parem klikk -> Team -> Commit
 +
# avanevas aknas ta peaks näitama osade failide kohta "+" märki (need, mis on nüüd uues "HW1" kaustas) ja osade kohta halli "x" märki (need, mis olid vanas "Esimene" kaustas). Kõik x-märgiga failid tuleks ära märkida - siis need kustutavad gitist ära. Ja kõik vajalikud "+" märgiga failid tuleks ära märgistada - need lähevad giti üles.
 +
# seejärel tavaline Team -> Push to Upstream
 +
 
 +
5. sammu puhul võib põhimõtteliselt ka "x" märgitustega failid märkimata jätta. Sellisel juhul neid faile gitist ei kustutata. Peamine on, et "HW1" kaust saab lisatud.
 +
 
 +
== Probleemid ==
 +
 
 +
Probleemide vältimiseks tehke alati enne koodimuudatusi repositooriumile <code>git pull</code>. 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 <code>pull</code>, seejärel koodi muuta ja seejärel commit & 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 juhuk koopia
 +
* <code>git clone</code>
 +
* <code>git pull</code>
 +
* kopeerite oma projekti/failid
 +
* <code>git add</code> (uue failid indeksisse)
 +
* <code>git commit</code> (kohalikku salvehoidlasse)
 +
* <code>git push</code> (serverisse).
 +
 
 +
== Kursuse kood ==
 +
 
 +
Loengute ja praktikumide koodid: https://git.ttu.ee/kursused/iti0011/materjalid.git (veebist pole kättesaadav, saate tõmmata alla kasutades UNI ID-d).
 +
 
 +
Kasutamiseks Eclipse'is:
 +
* kloonite endale salve
 +
* Git Repositories vaates antud salve peal parem klikk - Import projects...
 +
* avaneb nimekiri kaustadest. Sealt valida "ITI0011", "next"
 +
 
 +
Saate kasutada üleval toodud juhendit, et see salv endale Eclipse'i projektiks importida. Kasutate sama kasutajanime/parooli, mis enda salve jaoks.
  
Kõik tunniülesanded alates 6. nädalast (6. oktoober ja edasi) tuleb samuti laadida git'i. Kaustad prax6, prax7 jne, vastavalt nädalale.
+
Antud salve sees on kaust ITI0011, mis on Eclipse'i projekt (peaksite saama selle importida git vaatest). Nimetatud projektis on struktuur selline "praktikumid" paketi all on erinevad praktikumi korrad. "praktikum11" tähendab 11. praktikum (mis peaks olema 6. nädala esimene praktikum). Iga praktikumi korra all on erinevad grupid (g12, g34, g5). Number grupi nimes näitab, millised IAPB2x rühmad sellest käivad. Seega "g12" tähistab IAPB21 ja IAPB22 praktikumi.

Viimane redaktsioon: 31. jaanuar 2016, kell 19:48

Tagasi kursuse lehele: ITI0011

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 harjutus- ja kodused ülesanded tuleb laadida git'i. Harjutustunniülesanded peavad olema kaustades EX01, EX02 jne. Kodused ülesanded peavad olemas kaustades HW01, HW02, HW03, HW04. Number näitab mõlemal juhul järjekorranumbrit. Vastav viide on ka ülesande kirjelduse juures. Git'i võib laadida terve projekti (HW01/src/pakett/MinuFail.java) või otse lahendusefailid (HW01/MinuFail.java). Tähelepanu, kui laete käsitsi, peate olema kindlad, et programm selliselt ka käivitub. Soovitatav on laadida terve projekt selliselt, et lähtekoodi juurkaust (või mõni selle ülemkaust) on git'i kaustas (näiteks EX01 või HW01).

Sammud projekti/lahenduse giti panemisel:

git clone https://uniid@git.ttu.ee/ained/iti0011/uniid.git
cd uniid
mkdir EX00
cd EX00

Siia kausta tuleks nüüd luua fail, näiteks Main.java .

git add Main.java
git commit -m "kommentaar seoses tehtud muudatustega, näiteks jagamise viga parandatud"
git push origin master


Projekti nime muutmine git'is

Kui oled juba oma koodi üles laadinud vale kausta nimega, siis siin on juhend, kuidas kausta nime muuta läbi Eclipse'i. Juhend eeldab, et tudeng on laadinud esimese kodutöö üles kausta "Esimene". Oleks vaja laadida aga "HW1".

Kui teha projektile "rename", siis projekti nimi eclipse'is muutub ära, aga kausta nimi, milles projekt füüsiliselt on, jääb samaks. See kaust peaks asuma kasutaja "git" kaustas (windowsis c:\Users\kasutaja\git\eesnimi.perenimi näiteks).

Ilus ja eelistatud viis, kuidas projekti/kausta nime muuta (saate teha Git Bash'ist): http://stackoverflow.com/a/11183844/122128 Hiljem peate projekti uuesti importima.

Saab ka sedasi (aga see sisuliselt kustutab vana kausta maha ja lisab uue, eelmine meetod muudab kausta nime git'is):

  1. projekti peal parem klikk -> Refactor -> Move ...
  2. nüüd tuleks ära muuta projekti kausta nimi (näiteks kui enne oli "Esimene", siis panna "HW1"; pikalt siis: c:\users\ago\git\ago.luberg\Esimene=> c:\users\ago\git\ago.luberg\HW1)
  3. igaks juhuks võib projekti nime ka ära muuta (kuigi minu teada see git'i ei mõjuta - lihtsalt endal on pilt selgem). parem klikk projekti peal -> Refactor -> Rename (muuta siis ka "HW1"-ks).
  4. projekti peal parem klikk -> Team -> Commit
  5. avanevas aknas ta peaks näitama osade failide kohta "+" märki (need, mis on nüüd uues "HW1" kaustas) ja osade kohta halli "x" märki (need, mis olid vanas "Esimene" kaustas). Kõik x-märgiga failid tuleks ära märkida - siis need kustutavad gitist ära. Ja kõik vajalikud "+" märgiga failid tuleks ära märgistada - need lähevad giti üles.
  6. seejärel tavaline Team -> Push to Upstream

5. sammu puhul võib põhimõtteliselt ka "x" märgitustega failid märkimata jätta. Sellisel juhul neid faile gitist ei kustutata. Peamine on, et "HW1" kaust saab lisatud.

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 & 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 juhuk koopia
  • git clone
  • git pull
  • kopeerite oma projekti/failid
  • git add (uue failid indeksisse)
  • git commit (kohalikku salvehoidlasse)
  • git push (serverisse).

Kursuse kood

Loengute ja praktikumide koodid: https://git.ttu.ee/kursused/iti0011/materjalid.git (veebist pole kättesaadav, saate tõmmata alla kasutades UNI ID-d).

Kasutamiseks Eclipse'is:

  • kloonite endale salve
  • Git Repositories vaates antud salve peal parem klikk - Import projects...
  • avaneb nimekiri kaustadest. Sealt valida "ITI0011", "next"

Saate kasutada üleval toodud juhendit, et see salv endale Eclipse'i projektiks importida. Kasutate sama kasutajanime/parooli, mis enda salve jaoks.

Antud salve sees on kaust ITI0011, mis on Eclipse'i projekt (peaksite saama selle importida git vaatest). Nimetatud projektis on struktuur selline "praktikumid" paketi all on erinevad praktikumi korrad. "praktikum11" tähendab 11. praktikum (mis peaks olema 6. nädala esimene praktikum). Iga praktikumi korra all on erinevad grupid (g12, g34, g5). Number grupi nimes näitab, millised IAPB2x rühmad sellest käivad. Seega "g12" tähistab IAPB21 ja IAPB22 praktikumi.