Mõisted
Remote Repository
Remote repositoorium on projekti versioon, mida hoitakse internetis.
See võimaldab mitmel inimesel erinevatest kohtadest sama projekti kallal koostööd teha. Remote repositooriume hoitakse tavaliselt platvormidel nagu GitLab, GitHub või Bitbucket. Koostööl põhineva projekti korral peab arendaja saama iseseisvalt panustada, mõjutamata teisi kasutajaid või sõltumata neist.
Algse repo koopia tegemiseks pakub git võimalust nimega forking.
Pärast fork-imist viidatakse algsele repole kui upstream ja hargnenud repole kui origin.
On ka clone, mis on on põhimõtteliselt repo allalaadimine arvutisse.
Peamine erinevus seisneb selles, et fork teeb kontole projektist täiesti enda koopia, aga clone laeb olemasoleva repo masinasse.
Origin on nimi, mis antakse vaikimisi masinasse kloonitud remote repodele. See toimib justkui viitena algse repo URL-ile.
Kasutus:
Muudatuste push-imine: kui teed oma projektis muudatusi ja soovid need saata remote reposse, et seal oma muudatusi turvaliselt hoida, siis saad push-imise abil seda teha.
Muudatuste fetch-imine: remote repost teiste arendajate muudatuste (mis on push-itud) hankimiseks.
Upstream
Upstream on samuti viide remote repole, tavaliselt originaalsele repole, millest oma koopia eraldasid. See aitab hoida kloonitud projekti algse projektiga sünkroonituna.
Kasutus:
Algse projektiga sünkroonimine: kui kloonisid projekti ja soovid hankida algse projekti repost uusimad muudatused, hangid muudatused upstream-ist.
Muudatuste ühendamine main haruga: pärast täiustuste või paranduste tegemist oma harus loo merge request, et lisada muudatused upstream repositooriumisse.
HEAD
HEAD on pointer (kursor), mis näitab töökataloogi (kataloog=directory) hetkeseisu. See osutab viimasele commit-ile selles harus, kus parasjagu töötad.
Kui teed uue commit-i, liigub HEAD, et osutada sellele commit-ile.
Kui vahetad haru, osutab HEAD uue haru viimasele commit-ile.
Checkout
Checkout on käsk, mida kasutatakse harude vahetamiseks või working tree failide taastamiseks.
Harusse lülitumine: git checkout haru_nimi lülitab keskkonna soovitud harule ja värskendab Sinu töökataloogi, et see vastaks haru viimasele olekule.
Commit-i lülitumine: git checkout commit_hash võimaldab Sul vaadata oma projekti seisu konkreetse commit-i ajal. See on kasulik debug-imiseks või varasemate muudatuste ülevaatamiseks.
Rebase
Rebase on viis lisada muudatusi ühest harust teise.
Lihtsustatult tähendab rebase commit-ide jada kombineerimist üheks base commit-iks ning enda muudatuste rajamist selle peale, mida kõik teised juba eelnevalt teinud on.
Rebase kasutamine aitab hoida projekti ajaloo lineaarsena - arendajad saavad enne main haruga ühendamist oma commit-ide ajaloo tagantjärele korda teha.
Rebase kasutamise näide:
Arendaja töötab oma haru kallal, aga samal ajal liigub main haru uuenduste poolest edasi
Arendaja tahaks saada oma harusse main haru uuendusi, aga nii, et jääks mulje, nagu ta oleks kogu aeg ehitanud enda haru main haru kõige uuema versiooni peale
See lihtsustab hiljem uue haru lisamist main harule.
Praktilised ülesanded
Selleks, et neid mõisteid pärislet süvendada ja aru saada oleks mõistlik läbi teha seotud praktilised ülesanded: