Skip to content

Uitleg git-workflow

Ja, dat gaat prima. Dit is zelfs een heel normale Git-workflow. Je maakt niet iedere keer een nieuwe kopie van de hele map op je Mac.

Je workflow:

bash
git checkout main
git pull origin main
git checkout -b mijn-feature

Daarna pas je bestanden aan en vervolgens bijvoorbeeld:

bash
git add .
git commit -m "Mijn aanpassingen"
git push -u origin mijn-feature

Wat gebeurt er met je lokale map?

Stel je project is:

text
notes_vscode/

En je hebt uiteindelijk 20 branches:

text
main
feature/menu
feature/zoekfunctie
fix/mobile
fix/footer
feature/notificaties
...

Dan krijg je niet:

text
notes_vscode/
notes_vscode-feature-menu/
notes_vscode-zoekfunctie/
notes_vscode-fix-mobile/
...

Je houdt gewoon één projectmap:

text
notes_vscode/

Git bewaart intern de verschillen en commits van de branches in:

text
notes_vscode/.git/

Als je van branch wisselt, past Git de bestanden in je bestaande projectmap aan zodat ze overeenkomen met die branch. Tientallen branches betekent dus normaal gesproken maar een relatief kleine hoeveelheid extra schijfruimte.

Kleine verbetering: gebruik git switch

De modernere Git-commando's hiervoor zijn:

bash
git switch main
git pull origin main
git switch -c mijn-feature

Werk vervolgens en doe:

bash
git add .
git commit -m "Beschrijving van wijziging"
git push -u origin mijn-feature

Daarna kun je de branch bijvoorbeeld via GitHub mergen naar main.

Als de feature klaar en gemerged is, kun je lokaal ook opruimen:

bash
git switch main
git pull origin main
git branch -d mijn-feature

De branch is dan lokaal weg. Je projectmap blijft gewoon dezelfde.

Let wel op: dit is anders dan een Git worktree. Bij een worktree maak je juist wél meerdere fysieke projectmappen. In je eerdere git branch-uitvoer zag ik bijvoorbeeld branches met een +; dat duidt erop dat die branches in andere worktrees actief zijn. Die kunnen dus wél extra schijfruimte gebruiken.