Git ja GitHub
Õpieesmärgid
Selle peatüki lõpuks peaks õppija:
- mõistma, miks versioonihaldust kasutatakse
- oskama selgitada Giti ja GitHubi erinevust
- mõistma töökausta, staging area ja commit'i rolli
- oskama teha lihtsat commit'i
- mõistma, mida tähendab remote repository
1. Miks on versioonihaldust vaja?
Koodi kirjutamisel muutub projekt pidevalt. Lisad faili, parandad vea, kustutad midagi, proovid uut lahendust ja avastad, et vana variant oli parem.
Ilma versioonihalduseta tekivad kiiresti failid nagu:
projekt-final.zip
projekt-final-uus.zip
projekt-final-parandatud.zip
projekt-tegelikult-final.zipGit lahendab selle probleemi. Git salvestab projekti ajalugu commit'ide kaupa. Iga commit on nagu kontrollpunkt, kuhu saab hiljem tagasi vaadata.
Versioonihaldus aitab:
- jälgida, mis muutus
- aru saada, miks muutus tehti
- taastada vana versiooni
- teha koostööd teiste arendajatega
- jagada projekti GitHubis
2. Git ja GitHub ei ole sama asi
Git on tööriist, mis töötab sinu arvutis ja haldab projekti ajalugu.
GitHub on veebikeskkond, kuhu saab Git repository üles laadida ja teistega jagada.
Lihtne võrdlus:
Git = versioonihaldus sinu arvutis
GitHub = koht internetis, kus Git projekt asubGit töötab ka ilma GitHubita. GitHub ilma Gitita ei oleks aga eriti kasulik, sest GitHubi põhiidee on Git repository'de hoidmine ja jagamine.
3. Repository
Repository ehk repo on Gitiga jälgitav projekt.
Kui projektis on kaust .git, siis on tegemist Git repository'ga. .git kaustas hoiab Git projekti ajalugu ja sisemist infot.
Kontrollimiseks:
git statusKui projekt on Git repository, näed infot muutuste kohta. Kui ei ole, võid näha veateadet, et tegemist ei ole Git repository'ga.
Uue Git repository loomine:
git initOluline
Ära käivita git init suvalises kaustas. Tee seda ainult projekti juurkaustas.
4. Git töövoog
Giti algne töövoog koosneb kolmest sammust:
- muudad faile
- valid, millised muudatused lähevad järgmisesse commit'i
- salvestad commit'i
Seda saab mõelda kolme kihina:
töökaust -> staging area -> commitTöökaust on koht, kus failid päriselt muutuvad.
Staging area on vaheala, kuhu valid järgmise commit'i sisu.
Commit on salvestatud kontrollpunkt koos sõnumiga.
5. Esimene commit
Muudatuste vaatamine:
git statusFaili lisamine staging area'sse:
git add README.mdKõigi muudatuste lisamine:
git add .Commit'i tegemine:
git commit -m "Lisa projekti kirjeldus"Commit'i sõnum peaks lühidalt ütlema, mida ja miks muudeti.
Halb sõnum:
muudatusedParem sõnum:
Lisa projekti käivitamise juhend6. Ajaloo vaatamine
Commit'ide vaatamine:
git logLühem vaade:
git log --onelineSee aitab näha, millised kontrollpunktid projektis on tehtud.
7. GitHub, remote ja clone
Kui Git repository on ainult sinu arvutis, nimetatakse seda kohalikuks repository'ks.
Kui sama projekt on GitHubis, nimetatakse seda remote repository'ks.
Remote repository lisamine:
git remote add origin https://github.com/user/project.gitMuudatuste üles laadimine:
git pushMuudatuste alla tõmbamine:
git pullOlemasoleva GitHubi projekti kopeerimine arvutisse:
git clone https://github.com/user/project.git8. Mida Gitiga mitte jälgida?
Kõiki faile ei peaks Git jälgima. Näiteks node_modules/ on suur kaust, mille saab alati uuesti luua käsuga npm install.
Selleks kasutatakse .gitignore faili.
Näide:
node_modules/
dist/
.envSaladused ei kuulu GitHubi
Ära lisa GitHubi paroole, API võtmeid ega .env faili. Kui saladus on juba GitHubi jõudnud, ei piisa ainult faili kustutamisest, sest see võib jääda ajalukku.
9. Hea esimese aasta Git harjumus
Hea minimaalne töövoog:
git status
git add .
git commit -m "Kirjelda muudatust"
git statusEnne commit'i tee alati git status. See aitab vältida kogemata vale faili commit'imist.