Stap 4: branches samenvoegen (merge)
Je feature werkt en je wil hem in main hebben. Dat heet mergen.
Wissel eerst naar de doel-branch
Mergen werkt zo: je staat op de branch die de nieuwe commits moet ontvangen, en je geeft aan welke branch ze levert.
- Klik linksonder op
feature/welkomsbericht→ kies main
Je staat nu op main.
Voer de merge uit
- Ga naar Source Control (Ctrl+Shift+G)
- Klik op de
...rechtsboven in het Source Control-paneel - Kies Branch → Merge Branch...
- Kies feature/welkomsbericht uit de lijst
Wat je nu ziet
VS Code voegt de commits van je feature-branch samen met main. Open hello.txt: je welkomsbericht staat erin, terwijl linksonder main staat. Beide branches wijzen nu naar dezelfde commit.
Wat gebeurde er onder de motorkap?
git merge feature/welkomsbericht
En als er een conflict is?
Als je dezelfde regel op main én op de feature-branch hebt aangepast, weet git niet welke versie het moet kiezen. Dat heet een merge conflict. Je merge stopt halverwege en git zet allebei de versies in je bestand, met streepjes ertussen.
In deze tutorial werkte je alleen op de feature-branch, dus je hebt er geen gekregen. Wil je weten hoe het eruitziet voordat je het een keer onverwacht tegenkomt, maak er dan zelf een.
Zelf een conflict maken en oplossen
Dit duurt vijf minuten en is de enige manier om te weten hoe het voelt.
- Zorg dat je op
mainstaat. Openhello.txten verander de eerste regel inHallo vanaf main.Sla op, stage en commit met de boodschapregel van main. - Wissel naar
feature/welkomsbericht. Verander diezelfde eerste regel inHallo vanaf de feature.Sla op, stage en commit metregel van de feature. - Wissel terug naar
mainen merge de feature-branch, net als hierboven.
Nu klapt het. VS Code meldt bovenin dat er een conflict is, en hello.txt ziet er zo uit:
<<<<<<< HEAD
Hallo vanaf main.
=======
Hallo vanaf de feature.
>>>>>>> feature/welkomsbericht
Lees dat als een keuzemenu. Boven de streep staat wat er op je huidige branch stond (HEAD, dus main), onder de streep wat de andere branch meebrengt.
VS Code zet vier kleine knoppen boven het blok:
| Knop | Wat je overhoudt |
|---|---|
| Accept Current Change | alleen de regel van main |
| Accept Incoming Change | alleen de regel van de feature-branch |
| Accept Both Changes | allebei de regels, onder elkaar |
| Compare Changes | de twee versies naast elkaar, om te kiezen |
- Klik er een aan, of typ zelf iets anders in dat blok — je mag ook een derde versie schrijven die geen van beide is.
- Controleer dat
<<<<<<<,=======en>>>>>>>weg zijn. Blijft er één staan, dan komt hij letterlijk in je commit. - Stage
hello.txten commit. De boodschap staat al voorgevuld metMerge branch 'feature/welkomsbericht'— die mag je zo laten.
Klaar. Een conflict is geen fout van jou: het is git die weigert te gokken.
Vastgelopen halverwege? Je kunt de merge altijd afbreken en doen alsof er niets gebeurd is:
git merge --abort