GIT perusteet
Git on versionhallintajärjestelmä, joka tallentaa projektin muutokset historian muodossa ja mahdollistaa palaamisen aiempiin versioihin.
1) Keskeinen ajatus
Git ei tallenna tiedostoja automaattisesti.
Tyypillinen työnkulku on aina:
- Muokkaa tiedostoja
- Valitse muutokset Gitille (
git add) - Tallenna muutokset historiaan (
git commit) - Lähetä GitHubiin (
git push)
2) Git-repositorion alustus
Projektikansiossa:
git init
Tämä:
-
luo piilotetun kansion .git/
-
tekee kansiosta Git-repositorion
-
aloittaa versionhallinnan.
3) Gitin kolme tilaa
Gitissä tiedostot ovat aina jossain näistä tiloista:
Working directory
Tavalliset tiedostot, joita muokkaat editorilla.
Staging area
Muutokset, jotka on valittu seuraavaan versioon (git add).
Repository (commit-historia)
Pysyvästi tallennetut versiot (git commit).
Muistisääntö:
Muokkaus → add → commit
4) Muutosten tarkistaminen
git status
Näyttää:
-
mitkä tiedostot ovat muuttuneet
-
mitkä ovat valmiina committiin
-
mitä Git ei vielä seuraa.
5) Muutosten lisääminen committiin
Kaikki muutokset:
git add .
Yksi tiedosto:
git add content/entries/uusi.md
git add ei vielä tallenna historiaan, vaan valitsee muutokset.
6) Commit – muutosten tallennus
git commit -m "Lisää uusi artikkeli"
Commit:
-
luo uuden version projektiin
-
sisältää tekijän, ajan ja viestin
-
on pysyvä osa historiaa.
Sana commit tarkoittaa sitoutumista muutokseen.
7) Commit-historian katselu
Pitkä muoto:
git log
Lyhyt ja selkeä (suositeltu):
git log --oneline
Vain tietyn tiedoston historia:
git log -- content/entries/uusi.md
8) GitHubin käyttö (remote)
Lisää GitHub-repo:
git remote add origin git@github.com:USERNAME/repo.git
Lähetä commitit GitHubiin:
git push
Ensimmäisellä kerralla:
git push -u origin main
9) Muutosten hakeminen GitHubista
git pull
Tämä:
-
hakee uudet commitit GitHubista
-
yhdistää ne paikalliseen versioon.
10) Yhden tiedoston palautus aiemmasta versiosta
Etsi commit:
git log --oneline -- content/entries/uusi.md
Palauta tiedosto:
git restore --source <commit-id> content/entries/uusi.md
Tee palautuksesta uusi commit:
git add content/entries/uusi.md
git commit -m "Palauta tiedosto aiempaan versioon"
11) Vanhan version katselu ilman palautusta
git show <commit-id>:content/entries/uusi.md
Tämä ei muuta mitään.
12) Kehitys vs tuotanto (Hugo-esimerkki)
Kehitys:
hugo server
Tuotanto:
hugo
Gitissä versionhallitaan lähteet, ei public/-kansiota.
13) .gitignore
.gitignore kertoo Gitille mitä EI tallenneta.
Tyypillinen Hugo-projekti:
public/ resources/ .hugo_build.lock
14) Yleinen työnkulku (tiivistetty)
git status
git add .
git commit -m "Kuvaava viesti"
git push
15) Tärkeä periaate
Gitissä virheitä ei yleensä poisteta historiasta.
Sen sijaan:
tehdään uusi commit, joka korjaa vanhan.
Tämä tekee Gitistä turvallisen ja luotettavan.
16) Yhteenveto
-
Git tallentaa projektin historian
-
Commit on tietoinen päätös
-
GitHub on vain etäkopio reposta
-
Historia mahdollistaa palauttamisen milloin tahansa.
-
Tämä riittää käytännön työskentelyyn yhden kehittäjän Hugo-projektissa.