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>