Giti kasutamine grupitöös
Grupitöös kasutame mõnda Gitil baseeruvat lähtekoodihoidlat. Lähtekoodihoidla on koht, kus asub meie lahenduse lähtekood. Hoidlad võimaldavad arendajatel paralleelselt sama koodibaasi kallal töötada ning tehtud muudatusi sujuvalt olemasolevasse koodi sulatada. Kui kasutada mõnda valmis teenust, siis ei pea me muretsema ka infrastruktuuri ja varukoopiate pärast.
Grupitöös kasutame koodihoidlana ühte järgnevatest Gitil baseeruvatest teenustest:
Iga grupp saab või teeb omale uue koodihoidla (repository
). Giti tugi on sees kõikidel vahenditel, mida selle aine raames kasutame (Visual Studio, Visual Studio Code). Kes kasutab muid vahendeid, siis vajadusel saab Giti kasutada ka käsurealt.
Lähtekoodihoidlad
Lähtekoodihoidlad on kesksed süsteemid, mis hoiavad programmide lähtekoodi ning võimaldavad arendajatel samaaegselt töötada samade programmi failidega. Lisaks pakuvad hoidlad mitmeid olulisi funktsionaalsusi, mis lihtsutabad arendajate tööd nii suuremates kui pisemates projektides.
Täna on kõige populaarsemaks lähtekoodihoidlaks Git. Git võimaldab näiteks järgmisi tegevusi lisaks eelmainitule:
- erinevate arendajate poolt samadesse failidesse tehtud muudatuste ühte sulatamine
- versioonide ajalugu - kõigest, mis keegi hoidlasse on saatnud, jääb maha jälg koos ajatenmpliga
- lokaalses arvutis arendamine lokaalse versioonide ajalooga, lisaks võimalus versioonide vahel vahetada
- harude tugi - arendaja saab luua endale eraldi koodihoidla haru, kus saab tööd teha teistest sõltumatult (kui töö tehtud, siis saab antud haru sulandada tagasi koodihoidla põhiharusse)
Master ja feature branch
Giti korral hoitakse koodi erinevates hoidla harudes (branch
). Põhiharu kannab nime master
või main
. Selle kõrvale saab luua täiendavaid harusid uute funktsionaalsuste ehitamise jaoks. Tüüpiliselt hoitakse masteris koodi, mille võib julgelt paigaldada käituskeskkondadesse, mis on lõppkasutajatele kättesaadavad.
Uue haru loomisel võetakse alati aluseks mõni olemasolev haru. Näiteks kui arendaja hakkab lisama süsteemile arvelduste moodulit, siis loob ta masteri põhjal uue haru nimega feature/billing. Selles haru saab arendaja ehitada valmis kogu arveldustega seotud funktsionaalsuse ilma, et see pooltoorel kujul lõppkasutajateni jõuaks.
Commit ja push
Kui kirjutame programmi ja meie lähtekood on hoidlas, siis saame jäädvustada sinna ka oma töökäigu. Muudatused ja täiendused, mille töökorras oleme veendunud, salvestame koodihoidla kohalikku versiooni commit
käsuga. Commit tähendab seda, et oleme jäädvustanud lähtekoodi hetkeseisu ning vajadusel saame selle seisu juurde alati tagasipöörduda.
Commit käsuga peame andma kaasa ka kommentaari või lühiselgituse muudatuste kohta, mida hoidlasse salvestame. Lisa alati lühike ja arusaadav selgitus - hiljem on nii sinul endal kui su grupikaaslastel palju lihtsam aru saada, et millised muudatused antud commit endaga tõi.
Et saata kohalikud muudatused koodihoidlasse, kasutame käsku push
. Push tähendab seda, et kõik varem commitiga salvestatu, mida pole hoidlasse saadetud, saadetakse nüüd hoidlasse.
Hoidla on lähtekoodi kodu
Elukutselised arendajad lähtuvad ideest, et hoidlast võetud lähtekoodi oleme me sealt laenanud ning kõik töötavad muudatused ja täiendused jõuavad sinna võimalikult kiiresti tagasi. See tähendab ühtlasi immuunsust igasuguste ootamatuste vastu nagu näiteks arvuti kõvaketta suremine jmt.
Merge
Kui arendaja on funktsionaalsuse jaoks loodud harus töö valmis saanud, siis sulatab ta harus oleva seisu masterisse. Selle toimingu nimi on Giti maailmas merge
. Merge toimub järgmiste sammudena:
- Sulata masteri hetkeseis funktsionaalsuse jaoks loodud harusse.
- Kui tekkis konflikte, siis lahenda need.
- Saada haru uus seis, mis sisaldab nüüd masteri muudatusi, koodihoidlasse.
Kui masterisse lisandub uusi asju tihti, siis on soovitatav ka tihedamini merge ära teha, et erinevused masteri ja käesoleva haru vahel ei kasvaks liiga suureks. Midagi suuremad on erinevused, seda suurem on tõenäosus, et Git ei suuda ilma arendaja abita automaatselt muudatusi masterist käesolevasse harusse tuua ning tekivad konfliktid.
Selleks, et funktsionaalsuse jaoks loodud harust tuua valmis muudatused masterisse, teeme läbi kolm eeltoodud sammu. Neile lisaks peame tegema läbi ka järgnevad sammud:
- Vaheta koodihoidla master haru peale ümber.
- Tee merge feature/billing harust.
- Lahenda konfliktid kui neid tekkis.
- Veendu, et kõik jäi tööle ja mingeid vigu ei ole.
- Saada muudatused koodihoidlasse.
Git kasutamine käsureal
Koodihoidla kloonimine arendusmasinasse
git clone https://koodihoidla-aadress
Millises harus oleme
git branch
Haru vahetamine (avame feature/billing haru)
git checkout feature/billing
Muudatuste kohalik salvestamine
git add .
git commit -m "selgitus muudatuste kohta"
Muudatuste saatmine serverisse
git push