Veilig samenwerken via Git — zonder merge conflicten, met altijd up-to-date branches.
Gebruik een vaste branch structuur zodat jullie nooit op dezelfde code werken zonder dat dat bewust is.
| Branch | Status | Doel |
|---|---|---|
| main | Protected | Altijd productie-klaar. Nooit direct op committen. Alleen mergen via PR. |
| develop | Shared | Integratie branch. Hier komen alle features samen voor ze naar main gaan. |
| feature/naam | Persoonlijk | Eén feature per branch. Altijd afgesplitst van develop, nooit van main. |
| fix/naam | Persoonlijk | Bugfixes. Zelfde werkwijze als feature branches. |
| hotfix/naam | Persoonlijk | Urgente productiefix. Splitsbaar van main, daarna mergen naar main én develop. |
feature/contact-form, fix/mobile-nav-overflow, hotfix/broken-checkout.Volg deze stappen elke keer als je begint aan een nieuw stuk werk. Dit is de kern van conflict-vrij samenwerken.
# Ga naar develop en haal alles op git checkout develop git pull origin develop
# Maak een nieuwe branch en wissel er direct naartoe git checkout -b feature/jouw-feature-naam
git add . git commit -m "feat: voeg contactformulier toe"
# 1. Haal de laatste develop op git checkout develop git pull origin develop # 2. Ga terug naar je branch en rebase op develop git checkout feature/jouw-feature-naam git rebase develop # Als er conflicten zijn: los ze op, daarna: git add . git rebase --continue
git push origin feature/jouw-feature-naam # Na een rebase heb je mogelijk --force-with-lease nodig git push --force-with-lease origin feature/jouw-feature-naam
Merge conflicten ontstaan bijna altijd door dezelfde oorzaken. Hier zijn de regels die ze systematisch voorkomen.
git rebase develop geeft een lineaire geschiedenis en minder conflicten dan git merge develop.package-lock.json is een bekende conflictbron. Spreek af wie na een npm install de lock-file pusht, of resolve het conflict door één versie te committen en opnieuw npm install te draaien.git push --force op gedeelde branches (develop, main). Alleen --force-with-lease is toegestaan op je eigen feature branch na een rebase.PRs zijn de enige manier waarop code in develop en main terechtkomt. Houd het simpel.
# Verwijder de remote branch na het mergen git push origin --delete feature/jouw-feature-naam # Verwijder de lokale branch git checkout develop git pull origin develop git branch -d feature/jouw-feature-naam
Wanneer develop stabiel is en je wil deployen naar productie, open je een PR van develop naar main. Vercel deployt automatisch zodra main geüpdatet is.
Gebruik de Conventional Commits standaard. Dit maakt de git history leesbaar en makkelijk doorzoekbaar.
type(scope): korte beschrijving in de gebiedende wijs
| Type | Wanneer gebruiken | Voorbeeld |
|---|---|---|
| feat | Nieuwe functionaliteit | feat: voeg dark mode toe |
| fix | Bugfix | fix: herstel overflow in mobile nav |
| style | CSS / opmaak, geen logica | style: pas button radius aan |
| refactor | Code herstructureren zonder gedrag te wijzigen | refactor: extraheer reusable Card component |
| chore | Dependencies, configs, tooling | chore: update next.js naar 15.2 |
| docs | Documentatie | docs: update README met deploy instructies |
# Haal de nieuwste develop op git fetch origin # Rebase je huidige branch git rebase origin/develop # Push met force-with-lease (safe force push) git push --force-with-lease origin feature/jouw-branch
# Git stopt bij een conflict en toont welke bestanden git status # Open het bestand, zoek naar <<<<<<< HEAD # Kies de juiste versie, verwijder de conflict-markers # Sla op, voeg toe aan staging git add <bestand> # Ga verder met de rebase git rebase --continue # Wil je de rebase afbreken en terugzetten? git rebase --abort
# Sla je werk op in stash git stash # Ga naar develop en maak de juiste branch git checkout develop git pull origin develop git checkout -b feature/juiste-branch-naam # Haal je werk terug uit de stash git stash pop
# Splijs van main (productie) git checkout main git pull origin main git checkout -b hotfix/beschrijving # Fix, commit, push, PR naar main git commit -m "hotfix: repareer broken checkout redirect" git push origin hotfix/beschrijving # Na merge naar main: ook mergen naar develop! git checkout develop git merge main git push origin develop
# Alle branches zien (lokaal + remote) git branch -a # Alle remote branches ophalen zonder te mergen git fetch --all --prune # Bekijk de laatste commits per branch git log --oneline --graph --all -20 # Oude gemergede branches verwijderen git branch --merged develop | grep -v "^\*\|develop\|main" | xargs git branch -d