Waarom branchen
Last updated
Last updated
Branching is een krachtige functie van Git die gebruikt zal worden bij complexe projecten. Je kan branching gebruiken om in verschillende parallelle takken verder te werken aan specifieke onderdelen van het project. De code in de verschillende takken zullen, zolang de branches niet terug samengevoegd zijn, elkaar niet beïnvloeden.
Dit lijkt misschien ingewikkeld, maar word duidelijk snel duidelijk in onderstaande voorbeelden.
Onderstaand voorbeeld illustreert de situatie waarin een ontwikkelaar een mediaplayer maakt. Het project wordt opgestart je die doet al enkele commits in de" master" branch (groen).
Na 3 commits heeft hij al een stukje code, maar vanaf dit punt kan het project opgesplitst worden in 4 onderdelen. Er moet een top menu bar gemaakt worden, er zit nog een bug in de code die eruit gehaald moet worden, er moeten nog wat extra features en een side bar aan het project worden toegevoegd.
Wanneer de ontwikkelaar verder werkt aan een bepaald onderdeel, vertrekt hij steeds vanaf de derde groene commit. Vandaar splitst hij voor elk onderdeel een branch af en werkt. In de verschillende branches kan hij dan verder werken, de code in andere branches te beïnvloeden. In elke branch kan hij opnieuw opnieuw gebruik maken van Git om commits te doen, deze met elkaar te vergelijken wijzigingen ongedaan maken, ...
Wanneer een branch af is, wordt deze toegevoegd aan de "master".
De kracht van branching zit hem vooral wanneer je met verschillende mensen gaat samenwerken aan een project. Elke branch zou bijvoorbeeld kunnen uitgewerkt worden door een andere specialist. Dan moet uiteraard het project ook op een of andere manier gedeeld kunnen worden. Dit zien we later.
Je beheert bijvoorbeeld een website. Deze staat al online maar ondertussen werk je in een aparte branch verder aan wat extra features.
Plots krijg je een melding dat er nog een bug zit in de code die reeds online staat. Je commit dan de branch met de extra features zodat je er later kan aan verder werken. Daarna start je een nieuwe branch op om een oplossing voor de bug uit te werken. Ondertussen blijft je online code ongewijzigd.
Als je dan een oplossing voor de bug hebt, voeg je die branch samen met de master branch waarna je terug verder kan werken in de branch voor de nieuwe features.