In de introductie van deze reeks heb je de eerste stappen gezet in het werken met Git. Je leerde wat een commit is en hoe je bestanden toevoegt aan een commit. In dit artikel ga je leren hoe je met branches kunt werken.
Werken met branches
In de vorige tutorial heb je een eerste commit gedaan in de branchmain.
Dit is je hoofdtak. Hier kun je in blijven werken, maar het is gebruikelijk om het
werk in branches uit te voeren, en de wijzigingen samen te voegen met
main als ze klaar zijn. Dit om de al eerder genoemde reden: in een
branch kun je veilig werken zonder de hoofdtak te beïnvloeden.
Er zijn meerdere strategieën om te werken met *branches*. Bijvoorbeeld
het maken van zogenaamde *topic-branches*, waarbij je voor een
afgebakende functionaliteit of een bepaalde *bug* een nieuwe *branch*
maakt. Dit zijn veelal kortdurende *branches*. Je kunt ook langdurende
*branches* hanteren, bijvoorbeeld een *branch* genaamd development.
Een combinatie van beide is natuurlijk ook mogelijk.
Het wisselen tussen branches noem je een checkout of een switch. Omdat je als je
een nieuwe branch maakt je er meestal ook direct naartoe wilt
wisselen, kun je git checkout -b <naam-nieuwe-branch> gebruiken.
Maak je een branch zonder ernaar toe te wisselen, gebruik dan git
branch <naam>.
Switch
In plaats van checkout is er ook het nieuwere switch. Dit commando werkt echter niet met alle git-versies. Veranderen naar een nieuwe branch kan dan met git switch naam-andere-branch .
Een nieuwe branch maken en er direct naar toe gaan kan met git switch -c naam-nieuwe-branch
Alle wijzigingen die je nu maakt, zullen in branchfunctie-a
worden gedaan. Hier gelden verder precies dezelfde regels: dus heb je
wijzigingen aangebracht, dan gebruik je eerst git add om ze te
stagen, en gebruik je git commit om ze aan een commit toe te
voegen.
Maak maar eens wat wijzigingen in README.md en voer achtereenvolgens
de commando's git add README.md en git commit -m <bericht>
uit.
Een commit heeft altijd een bericht nodig. Met git commit -m 'jouw
bericht' voeg je dit bericht direct toe aan de commit. In
onderstaande afbeelding bevind je je nu op de eerste blauwe bol.
Je bent tevreden over deze toevoeging en wilt dit in je hoofdlijn
(main) verwerken. Dit proces noem je mergen. Hoe pak je dit aan?
Een merge voer je altijd uit vanaf de branch waar je de verandering
in wilt samenvoegen, in dit geval dus vanuit main. De eerste stap is
dus weer te wisselen naar main, met git checkout main. Voer deze
stap eerst uit, en open README.md opnieuw. Als het goed is, zie je
de zojuist toegevoegde tekst niet, deze is immers alleen aanwezig in
branchfunctie-a.
Het is afhankelijk van het programma waarmee je README.md opent of
je de wijzigingen direct ziet. In een IDE zal het bestand meestal
automatisch herladen. In Kladblok in Windows moet je het bestand eerst
sluiten en vervolgens opnieuw openen. In andere teksteditors krijg je
een bericht dat de inhoud is gewijzigd, en of je het bestand wilt
herladen.
Nu geef je met git merge aan welke branch je in main wilt
samenvoegen: git merge functie-a.
Open nu README.md opnieuw, en je zult zien dat de tekst nu wel
aanwezig is.
Nu alles is samengevoegd, heb je branchfunctie-a niet meer nodig,
deze kun je verwijderen. Dit doe je met git branch -d <naam>.
Met git branch kun je inzien welke branches je allemaal
nog hebt.
Conclusie
In deze tutorial heb je de basis geleerd van het werken met branches. En het is echt de basis, want er is veel meer mogelijk. Maar voor kleinere projecten waar je zelf of met een aantal collega's aan werkt zal dit al vaak voldoende zijn. Worden de projecten en de git-strategiën complexer, dan is het raadzaam om het git-boek te lezen. Vaak zullen er ook afspraken binnen de organisatie zijn gemaakt over hoe om te gaan met bepaalde situaties. Van je collega's kun je in dat geval veel leren!
In de volgende en laatste tutorial ga je in op het werken met remotes: ofwel repositories die niet op je eigen computer staan, maar ergens op een centrale server. Op die manier kun je met verschillende mensen aan hetzelfde project werken.
Over de auteur
Erwin Matijsen
Erwin is de oprichter van python-cursus.nl. In allerlei rollen heeft hij Python ingezet, van het eenvoudiger maken van zijn werk tot het opleveren van complete (web)applicaties. Met vrouw en kinderen woont hij in Havelte (Drenthe), midden in de prachtige natuur. Daar wandelt hij graag, zeker ook omdat de beste ingevingen tijdens een wandeling - weg van de computer - lijken te komen.
Vragen, opmerkingen?
Heb je vragen, opmerkingen, suggesties of tips naar aanleiding van deze blog?
Neem dan contact met ons op, of laat het weten via
Mastodon of
LinkedIN.