Branches Samenvoegen
Veeg om het menu te tonen
Begrip van het samenvoegen van branches
In Git is samenvoegen het proces waarbij wijzigingen van de ene branch in een andere worden geïntegreerd. Het meest voorkomende gebruik is het samenvoegen van feature-branches in de main branch (bijvoorbeeld main of master). Dit zorgt ervoor dat de nieuwste functies en bugfixes worden opgenomen in de hoofdcodebase.
Basisworkflow voor samenvoegen
Bekijk eerst de twee meest recente commits.
Let op: je bevindt je momenteel op de feature/new-feature branch.
git log -n 2
Zoals je kunt zien, loopt de master-branch één commit achter.
Voordat je gaat mergen, moet je overschakelen naar de branch waarin de wijzigingen worden geïntegreerd.
Schakel over naar de master-branch en toon de twee meest recente commits daarop:
git checkout master
git log -n 2
De master-branch loopt inderdaad één commit achter op de feature-branch.
Om deze samen te voegen, gebruik het commando git merge en specificeer de branch die je wilt samenvoegen met de huidige branch.
Om bijvoorbeeld de feature/new-feature-branch samen te voegen met master, voer uit:
git merge feature/new-feature
Het bericht dat wordt weergegeven na het uitvoeren van het commando bevat het volgende: Fast-forward, wat aangeeft dat een fast-forward merge is uitgevoerd.
Je zult later in dit hoofdstuk de twee soorten merges verkennen. Bekijk daarvoor eerst de twee meest recente commits:
git log -n 2
Je bevindt je nog steeds op de master branch, maar deze is nu up-to-date met de feature branch, waarbij beide branches naar dezelfde commit verwijzen.
De HEAD wijst nog steeds naar de master branch omdat je je op deze branch bevond tijdens het uitvoeren van de merge.
Merge-types
Er zijn twee typen merge-bewerkingen in Git:
- Fast-forward merge;
- Three-way merge.
Fast-forward merge
De merge die je hebt uitgevoerd is een fast-forward merge, zoals aangegeven in het bericht. Dit type komt voor wanneer alle commits van de momenteel uitgecheckte branch ook aanwezig zijn in de branch die wordt samengevoegd, wat betekent dat hun commitgeschiedenissen niet uit elkaar lopen.
Zie de volgende illustratie ter verduidelijking:
Bij dit type merge wordt de pointer van de uitgecheckte branch eenvoudigweg bijgewerkt naar de laatste commit.
Drieweg-merge
Als de geschiedenis van de branches echter uit elkaar is gegaan, wat betekent dat na een bepaalde gemeenschappelijke commit nieuwe commits afzonderlijk op elke branch zijn gemaakt, wordt een drieweg-merge uitgevoerd.
De term "drieweg" verwijst naar de drie versies die betrokken zijn bij de merge:
- De versie van de meest recente gemeenschappelijke voorouder (commit);
- De versie van de laatste commit in de huidige branch (HEAD);
- De versie van de laatste commit in de branch die wordt samengevoegd.
Bekijk de volgende illustratie van dit type merge:
Zo werkt een drie-weg-merge:
- Git identificeert de wijzigingen die op elke branch zijn gemaakt na de meest recente gemeenschappelijke voorouder;
- Als elke branch wijzigingen heeft in verschillende bestanden of in verschillende delen van hetzelfde bestand, zal Git de wijzigingen automatisch samenvoegen door ze te combineren in de resulterende commit;
- Anders ontstaat er een mergeconflict.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.