Käyttöönotto Hugo-projektissa
Asennus ja asetukset
git --version
git config --global user.name "Etunimi Sukunimi"
git config --global user.email "sahkoposti@example.com"
git config --global --list
Repo käyttöön (git init)
Siirry Hugo-projektin juureen:
cd polku/hugo-projekti
git init
.gitignore (suositus Hugolle)
Luo .gitignore projektin juureen:
/public/
/resources/_gen/
.DS_Store
.vscode/
.idea/
*.swp
*~
Ensimmäinen commit git add . git commit -m “Initial commit”
---
# 4) `content/docs/git/03-peruskomennot.md`
```md
---
title: "Peruskomennot arkeen"
weight: 13
---
## Tilanne ja historia
```bash
git status
git log --oneline --decorate --graph --all
Muutosten katselu
git diff
git diff --staged
Lisää ja committaa
Lisää yksittäinen tiedosto:
git add content/posts/uusi-postaus.md
Lisää kaikki:
git add .
Commit:
git commit -m "Lisätty uusi postaus"
Pikakommit (vain jo seurattuihin tiedostoihin):
git commit -am "Päivitetty tekstejä"
Stash (laita keskeneräinen työ sivuun)
git stash
# tee jotain muuta, esim. vaihda branchia
git stash pop
---
# 5) `content/docs/git/04-github.md`
```md
---
title: "GitHub: tallennus, kloonaus ja päivitys"
weight: 14
---
## Tallenna projekti GitHubiin (remote + push)
1) Luo repo GitHubissa (New repository).
2) Kytke paikallinen repo remoteen:
```bash
git remote add origin git@github.com:KAYTTAJA/hugo-sivusto.git
git remote -v
Jos haluat käyttää HTTPS:ää:
git remote add origin https://github.com/KAYTTAJA/hugo-sivusto.git
Varmista branchin nimi (main):
git branch
git branch -m main # jos se oli master ja haluat main
Lähetä GitHubiin:
git push -u origin main
Jatkossa:
git push
Kloonaa projekti GitHubista (clone)
cd minne/haluat/projektin
git clone git@github.com:KAYTTAJA/hugo-sivusto.git
cd hugo-sivusto
Päivitä omalle koneelle (pull vs fetch)
Hae ja yhdistä:
git pull
Hae ilman yhdistämistä:
git fetch
git log --oneline --decorate --graph --all
---
# 6) `content/docs/git/05-branch-merge.md`
```md
---
title: "Branchit ja merge"
weight: 15
---
## Miksi branchit?
Pidä `main` siistinä ja julkaisukelpoisena. Tee työ omissa brancheissa (esim. `feature/uusi-sivu`), ja yhdistä kun valmista.
## Luo branch ja vaihda siihen
```bash
git switch -c feature/uusi-sivu
Listaa branchit:
git branch
Vaihda takaisin mainiin:
git switch main
Pushaa branch GitHubiin
git push -u origin feature/uusi-sivu
Merge (yhdistä feature → main)
Tyypillinen kaava:
git switch main
git pull
git merge feature/uusi-sivu
git push
Merge-konfliktit
Jos Git ilmoittaa konfliktista:
Katso tiedostot:
git status
Avaa konfliktitiedosto ja etsi merkinnät:
<<<<<<< HEAD
mainin versio
=======
feature-branchin versio
>>>>>>> feature/uusi-sivu
Päätä lopullinen sisältö ja poista merkkirivit
Lisää ja committaa:
git add polku/tiedosto.md
git commit -m "Resolve merge conflict"
Branchin poisto
Paikallinen:
git branch -d feature/uusi-sivu
Etäbranch:
git push origin --delete feature/uusi-sivu
---
# 7) `content/docs/git/06-palautus.md`
```md
---
title: "Palautus ja peruutus"
weight: 16
---
## Palauta tiedosto (ennen committia)
Peru muokkaus tiedostosta:
```bash
git restore content/posts/juttu.md
Jos se on jo staged:
git restore --staged content/posts/juttu.md
git restore content/posts/juttu.md
Palauta kaikki muutokset:
git restore .
Peruuta commit turvallisesti (revert)
revert tekee uuden commitin, joka kumoaa vanhan — hyvä valinta, jos olet jo pushaanut GitHubiin.
git log --oneline
git revert <commit-id>
git push
Reset (varo)
Kova reset voi hävittää paikallisia muutoksia/committeja:
git reset --hard <commit-id>
Jos olet jo pushaanut ja muutat historiaa, joudut joskus käyttämään force pushia (yleensä vältettävä tiimeissä).
---
# 8) `content/docs/git/07-submodulit.md`
```md
---
title: "Hugo-teemat ja submodulet (valinnainen)"
weight: 17
---
Jos teema on lisätty Git submodulella, kloonauksen jälkeen tarvitset tämän:
```bash
git submodule update --init --recursive
Päivitä submodule (jos haluat uusimman version remote-haarasta):
git submodule update --remote --merge
git add .
git commit -m "Update theme submodule"
git push
Jos et käytä submodulea, voit ohittaa tämän sivun.
---
# 9) `content/docs/git/99-cheatsheet.md`
```md
---
title: "Cheatsheet"
weight: 99
---
## Päivittäinen käyttö
```bash
git status
git add .
git commit -m "viesti"
git push
git pull
Branchit
git switch -c feature/juttu
git switch main
git merge feature/juttu
Tutki historiaa
git log --oneline --graph --decorate --all
git diff
git diff --staged
Palautus
git restore tiedosto
git revert <commit-id>
# varo:
git reset --hard <commit-id>