Ga naar hoofdinhoud

Branches

Met branches kun je parallel werken aan verschillende versies van je project. Je werkt aan een nieuwe feature of bugfix in een aparte branch, zonder de werkende code in main aan te raken.

Wat is een branch?

Stel je voor dat je een website bouwt en een nieuw inlogformulier wilt toevoegen. Je kunt dit rechtstreeks in je main branch doen — maar wat als je halverwege vastloopt en tussendoor snel een andere bug moet oplossen? Dan zit je met half afgewerkte code in je hoofdversie.

Een branch is een aparte werklijn die vertrekt van een bepaald punt in je commit-geschiedenis. Wat je erin doet, heeft geen invloed op andere branches.

main: A ── B ── C ─────────────────── F
\ /
feature: D ── E ── (klaar) /
↑ merge
  • Commits A, B, C: werk in main
  • Op commit C: je maakt een nieuwe branch feature
  • Commits D, E: werk in featuremain blijft ongewijzigd
  • F: je voegt feature terug samen met main

Branches bekijken

git branch

De branch waar je momenteel in werkt, is gemarkeerd met een * en weergegeven in een andere kleur.

* main
login-formulier
zoekfunctie

Een nieuwe branch aanmaken en overschakelen

# Branch aanmaken
git branch login-formulier

# Overschakelen naar de branch
git switch login-formulier

Of in één commando:

git switch -c login-formulier
Controleer altijd in welke branch je zit

Gebruik git branch of kijk rechts onderaan in VS Code — daar staat de naam van de actieve branch. Het is makkelijk om per ongeluk in de verkeerde branch te werken.


Werken in een branch

Eens je in de branch zit, werk je gewoon zoals altijd: bestanden aanpassen, git add, git commit. Alle commits blijven in deze branch.

git switch -c login-formulier

# ... maak je aanpassingen ...

git add login.html
git commit -m "Add login form"

git add login.css
git commit -m "Style login form"

Branches samenvoegen (merge)

Als je klaar bent met een feature, voeg je de branch samen met main:

# Stap 1: Ga terug naar main
git switch main

# Stap 2: Voeg de branch samen
git merge login-formulier

Git probeert de wijzigingen automatisch samen te voegen. Als er geen conflicten zijn, is de merge meteen klaar.

Branch opruimen na de merge

Na een merge heb je de branch niet meer nodig: de commits leven voortaan verder in main. Oude branches die rondslingeren maken je git branch-lijst onoverzichtelijk en kunnen verwarrend zijn voor teamleden — ze weten dan niet of er nog aan gewerkt wordt. Ruim ze dus op zodra de merge klaar is.

git branch -d login-formulier

Git weigert dit commando als de branch nog niet gemerged is — zo voorkom je per ongeluk werk kwijtspelen. Wil je een branch toch geforceerd verwijderen, gebruik dan -D (hoofdletter).


Merge conflicten

Soms wijzigen twee branches dezelfde regel in een bestand. Git weet dan niet welke versie de juiste is — dat noem je een merge conflict.

Wanneer gebeurt dit?

main: ... "Kleur: blauw"
feature: ... "Kleur: rood"

Bij de merge zegt Git: "Ik weet het niet — kies zelf."

Hoe ziet een conflict eruit?

In het bestand verschijnen speciale markeringen:

<<<<<<< HEAD
Kleur: blauw
=======
Kleur: rood
>>>>>>> feature
  • <<<<<<< HEAD — jouw versie (de branch waar je in zit)
  • ======= — scheiding
  • >>>>>>> feature — de versie uit de andere branch

Een conflict stap voor stap oplossen

1. Open het bestand in VS Code.

VS Code toont conflicten visueel met knoppen bovenaan het conflictblok:

  • Accept Current Change — behoudt de bovenste versie (HEAD)
  • Accept Incoming Change — behoudt de binnenkomende versie
  • Accept Both Changes — houdt beide versies
  • Compare Changes — toont een zij-aan-zij vergelijking

2. Kies welke versie je wil (of combineer ze manueel).

3. Verwijder alle conflictmarkeringen (<<<<<<<, =======, >>>>>>>) en sla op.

4. Voeg het bestand toe aan de staging area en commit:

git add bestand.txt
git commit -m "Merge: login-form branch"
Na de merge

Je hoeft de commit-boodschap bij een merge-commit niet altijd zelf te schrijven — Git stelt er automatisch een voor. Je kunt die overnemen.


Branching in de praktijk

In een professionele omgeving werken teams volgens afgesproken regels over hoe ze branches gebruiken. Hier zijn twee veelgebruikte aanpakken:

Feature branch workflow — elke nieuwe functie of bugfix krijgt een eigen branch. Zodra het klaar en getest is, wordt het via een pull request gemerged. Dit is de aanpak die jij in dit vak leert en die je in de meeste kleinere teams tegenkomt.

Git Flow — een uitgebreidere structuur met vaste branch-types: main voor stabiele releases, develop als integratietak, en kortlevende feature/, release/ en hotfix/ branches. Gebruikt in projecten waar versies strikt beheerd worden, zoals apps in de app store.

Voor je eerste projecten volstaat de feature branch workflow ruimschoots. Je zult merken dat bijna alle teams variaties hierop gebruiken.

Overzicht van commando's

CommandoWat het doet
git branchToont alle lokale branches
git branch <naam>Maakt een nieuwe branch aan
git switch <naam>Schakelt over naar een bestaande branch
git switch -c <naam>Maakt een branch aan én schakelt er direct naartoe
git merge <naam>Voegt een branch samen met de huidige branch
git branch -d <naam>Verwijdert een branch (veilig: enkel als gemerged)