🐙 Branches
Parallel werken zonder elkaar in de weg te zitten — het krachtigste onderdeel van Git.
Wat zijn branches?
Een branch is een aparte lijn van commits — een parallele versie van je project. Zo kun jij aan een nieuwe feature werken terwijl een teamlid een bug fixt, zonder dat jullie elkaar beïnvloeden.
main: A---B---C-----------F
\ /
feature: D---E (merge)
\
bugfix: X (aparte fix)
main bevat altijd werkende code. Features en bugfixes worden op aparte branches ontwikkeld en daarna gemerged.
De standaard branch. Bevat de stabiele, werkende versie. Direct pushen is in professionele teams vaak verboden.
Eén branch per feature of taak. Naam: feature/login, feature/zoekbalk. Na merge verwijderen.
Snelle bugfix direct vanuit main. Naam: hotfix/login-crash. Snel maken, testen, mergen.
Branch commando's
git branch — toon alle branchesgit branch -a — incl. remote branchesgit branch naam — maak branch aangit branch -d naam — verwijder branchgit branch -D naam — forceer verwijderengit checkout naam — wissel naar branchgit checkout -b naam — aanmaken + wisselgit switch naam — modern alternatiefgit switch -c naam — aanmaken + wisselgit switch - — vorige branch# Vanuit main — nieuwe feature branch aanmaken
git checkout -b feature/contactformulier
# Werk en commit...
git add .
git commit -m "Voeg contactformulier toe"
git commit -m "Voeg validatie toe aan formulier"
# Push branch naar GitHub
git push -u origin feature/contactformulier
# Daarna: Pull Request aanmaken op GitHub
git merge — branches samenvoegen
Als je feature klaar is, voeg je de branch samen met main via git merge.
# Ga naar de branch waar je naartoe wilt mergen (main)
git checkout main
# Zorg dat main up-to-date is
git pull
# Merge de feature branch in main
git merge feature/contactformulier
# Push de ge-mergede main
git push
main: A---B feature: C---D Na merge: A---B---C---D
Als main niet bewogen is, schuift Git simpelweg de pointer vooruit. Geen merge commit.
main: A---B---E feature: C---D Na merge: A---B---E---M (merge commit)
Als main ook nieuwe commits heeft, maakt Git een merge commit (M) aan.
git branch -d feature/contactformulier # lokaal verwijderen
git push origin --delete feature/contactformulier # remote verwijderen
git rebase — nettere geschiedenis
git rebase is een alternatief voor merge dat een lineaire geschiedenis oplevert — handig voor overzichtelijke logs.
main: A---B---E---M
\ /
feature: C---D
Duidelijk wanneer wat gemerged is, maar drukke log.
main: A---B---E---C'--D'
Commits van feature worden "verplaatst" bovenop main. Overzichtelijker, maar herschrijft geschiedenis.
git checkout feature/mijnfeature
git rebase main # verplaats commits bovenop main
git checkout main
git merge feature/mijnfeature # fast-forward, geen merge commit
Rebase nooit gedeelde branches (main, develop). Alleen rebase op je eigen feature branches die je nog niet gepusht hebt — of gebruik git pull --rebase.
Branch strategie in de praktijk
Professionele teams gebruiken vaste naamconventies en workflows. De meest gebruikte is GitHub Flow — simpel en effectief.
- ☐ Aangemaakt vanuit een up-to-date main (
git pulleerst) - ☐ Naam beschrijft wat je bouwt
- ☐ Kleine, beschrijvende commits tijdens het werk
- ☐ Pull Request met beschrijving wat en waarom
- ☐ Branch verwijderd na merge
🧠 Kennischeck
Les 6 afgerond!
Je beheerst branches — het krachtigste onderdeel van Git voor samenwerking.