# HuoltoERP — Git-ohjeet

## Repositorion rakenne

```
main        ← vakaa tuotantohaara
develop     ← kehityshaara (uudet ominaisuudet)
feature/*   ← yksittäiset ominaisuudet
hotfix/*    ← kiireelliset tuotantokorjaukset
```

## Alkuasennus palvelimella

```bash
# 1. Kloonaa repo
git clone https://github.com/firma/huoltoerp.git
cd huoltoerp

# 2. Luo .env — EI koskaan commitoida
cp api/.env.example api/.env
chmod 600 api/.env
nano api/.env          # aseta oikeat arvot

# 3. Aja tietokanta
mysql -u root -p < huoltoerp_schema.sql
```

## Päivittäminen palvelimella

```bash
git pull origin main
# Ei tarvita npm install tai composer — ei riippuvuuksia
```

## Päivittäinen kehitystyökulku

```bash
# Uusi ominaisuus
git checkout develop
git checkout -b feature/sms-muistutukset

# Tee muutoksia...
git add api/src/controllers/sms/SmsReminderController.php
git commit -m "feat(sms): lisää automaattiset huoltomuistutukset"

# Yhdistä developiin
git checkout develop
git merge feature/sms-muistutukset
git branch -d feature/sms-muistutukset

# Kun valmis → tuotantoon
git checkout main
git merge develop
git tag v1.1.0
git push origin main --tags
```

## Kiireellinen tuotantokorjaus

```bash
git checkout main
git checkout -b hotfix/varasto-laskentavirhe
# korjaa...
git commit -m "fix(varasto): korjaa negatiivinen saldo POS-myynnissä"
git checkout main
git merge hotfix/varasto-laskentavirhe
git checkout develop
git merge hotfix/varasto-laskentavirhe
git branch -d hotfix/varasto-laskentavirhe
```

## Commit-viestien muoto

```
tyyppi(moduuli): lyhyt kuvaus

feat     = uusi ominaisuus
fix      = bugikorjaus
security = tietoturvakorjaus
refactor = koodin siistiminen
docs     = dokumentaatio
```

## GitHub/GitLab -lisäys

```bash
# Lisää etärepositorio
git remote add origin https://github.com/firma/huoltoerp.git

# Ensimmäinen push
git push -u origin main

# Myöhemmät pushit
git push
```

## TÄRKEÄÄ — Älä koskaan commitoi

- `api/.env`           ← salasanat, JWT-secret
- `api/storage/`       ← ladatut tiedostot
- `*.log`              ← lokitiedostot

Nämä on estetty .gitignore-tiedostolla.
