Git Branching-strategi¶
Vi bruger Trunk-Based Development (TBD) — den tilgang der skalerer bedst med CI/CD og korte feedback-loops.
Princippet¶
main er altid deploybar. Alle integrerer til main mindst én gang om dagen. Feature branches er kortlivede (max 1-2 dage). Der er ingen langlivede develop- eller release-branches.
gitGraph
commit id: "init"
branch feature/add-auth
checkout feature/add-auth
commit id: "feat: add token validation"
commit id: "feat: add refresh logic"
checkout main
merge feature/add-auth id: "merge: auth"
branch fix/token-expiry
checkout fix/token-expiry
commit id: "fix: token expiry edge case"
checkout main
merge fix/token-expiry id: "merge: fix"
commit id: "chore: bump deps" Branch-navngivning¶
| Type | Mønster | Eksempel |
|---|---|---|
| Feature | feature/<kort-beskrivelse> | feature/user-invitations |
| Bugfix | fix/<kort-beskrivelse> | fix/token-expiry-edge-case |
| Hotfix (prod) | hotfix/<kort-beskrivelse> | hotfix/null-pointer-checkout |
| Chore / deps | chore/<kort-beskrivelse> | chore/bump-php-82 |
| Docs | docs/<kort-beskrivelse> | docs/update-api-reference |
Brug kebab-case, hold det kort og beskrivende (max ~40 tegn).
Arbejdsflow¶
1. Hent seneste main
2. Opret feature branch
3. Commit hyppigt med Conventional Commits
git commit -m "feat: add email verification step"
git commit -m "test: add unit tests for verification"
git commit -m "fix: handle empty email gracefully"
4. Push og åbn PR
5. Squash-merge til main (standard)
Vi squasher altid branches ved merge til main. Det holder historikken ren. GitHub PR-siden: vælg "Squash and merge".
6. Slet branch efter merge
GitHub sletter automatisk branches efter merge (konfigureret i repo-settings).
Feature Flags til store features¶
Har du en feature der tager mere end 2 dage? Brug en feature flag frem for en langlevet branch:
Flag aktiveres per miljø i .env. Fjern flag + gammel kode når featuren er fuldt rullet ud.
Commit-format (Conventional Commits)¶
| Type | Bruges til |
|---|---|
feat | Ny funktionalitet |
fix | Bugfix |
docs | Kun dokumentation |
test | Tilføjer eller retter tests |
refactor | Refaktorering (ingen ny feature, ingen bugfix) |
chore | Dependencies, CI, tooling |
perf | Performanceforbedring |
ci | CI/CD-konfiguration |
Breaking changes
Tilføj ! efter typen eller BREAKING CHANGE: i footer:
feat!: remove deprecated auth endpoint
Tags og releases¶
Releases tagges på main med semantisk versionering:
Brug GitHub Releases til release notes — generer automatisk fra PR-titler.