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:

  1. Muokkaa tiedostoja
  2. Valitse muutokset Gitille (git add)
  3. Tallenna muutokset historiaan (git commit)
  4. 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.