Introductie tot Version Control (GIT)

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Hallo iedereen,

    in dit blog bericht had ik graag een korte inleiding tot GIT gegeven, een version control systeem waar ik zelf non-stop gebruik van maak.

    Maar wat is nu juist version control?
    Een versiebeheersysteem of VCS (Engels: Version Control System) is een computerprogramma waarmee men de wijzigingen in documenten, programma's of andere informatie bewaard in computerbestanden kan beheren. Een versiebeheersysteem is meestal een apart programma, maar het is ook in beperkte mate ingebouwd in sommige software zoals tekstverwerkers (bijvoorbeeld Microsoft Word, OpenOffice.org Writer, Google Docs) [source: wikipedia]

    Waarom is dit nuttig?
    Het gebruik van Version Control is nuttig in vele opzichten, de 2 grootste voordelen in mijn geval zijn:
    • Meerdere mensen kunnen tegelijk werken aan een project (Dit is zeker het geval bij grotere bedrijven). Wanneer iemand iets aanpast waar de andere ook aan bezig is, kan deze zijn files 'uploaden' (pushen), waardoor de 2e persoon nadien de aangepaste files kan 'downloaden' (pullen) en de nodige files (waar conflicten optreden) samenvoegen (mergen).
    • Je kent vast het scenario wel waar je wat aan je code sleuteld en plots werkt je code niet meer. Hier komt version control ook aan te pas, je kan namelijk makkelijk terug keren (reverten) naar een oudere versie, waar je code wel nog werkte.
    Het leren gebruiken van een version control systeem is niet alleen handig voor eigen gebruik, maar staat ook mooi op je CV. Vele bedrijven gebruiken dit namelijk intern voor hun projecten op te volgen.

    Soorten version control systemen?
    Version Control bestaat al een tijdje en is ondertussen al verder geevolueerd.
    • CVS (Concurrent Versions System) was gereleased in November, 1990, dit soort systemen wordt in de praktijk haast niet meer gebruikt. Het is gebasseerd op het client-server model, wat betekent dat je een server hebt, waar alle files en hun aanpassingen (over time) op gestored worden. De bottleneck zit hem hier in die ene server. Als deze door een bepaalde reden kapot zou gaan, is alles verloren.
    • GIT heeft zijn initial release in April 2005. Het gebruikt het gedistribueerde model, waar iedereen lokaal de volledige code en de aanpassingen (over time) zal hebben staan. Dit neemt meer plaats in, maar heeft als voordeel dat problemen met de server makkelijker opgelost kunnen worden. Ook hoef je ook geen connectie met de server te hebben om te 'reverten' naar een oudere versie van het project.
    Hoe werkt GIT dan?
    Om eerlijk te zijn, geloof ik niet dat ik duidelijker ga kunnen zijn dan Code School - Try Git
    Dus raad ik iedereen die geintresseerd is geraakt door mijn korte introductie, deze tutorial te volgen. Je start er met een nieuwe repository (project-encapsulatie) aan te maken, waar je geleidelijk aan files zult aan toevoegen, committen, pushen, pullen, enz.

    De basis is redelijk simpel: Je maakt(init) een nieuwe repository aan of je cloned een bestaande. Vervolgens ga je files waar je aanpassingen hebt gemaakt adden, vanaf je op een bepaald moment denkt (nu heb ik een deel functionaliteit af of je wilt een backup nemen), commit (samennemen) je alle ge-adde files en je geeft er een message bij, waar je beschrijft wat de commit bevat. Nadien pull je de server, om na te gaan of niemand anders al aanpassingen heeft gemaakt. Indien dit het geval is, kan het zijn dat je ze manueel moet mergen (in sommige gevallen gebeurd dit automatisch). Tenslotte push je zelf je (gemergde) commit naar de server. Je kan nu verder werken met een gerust geweten.

    GIT effectief proberen?
    Windows/Mac: Git - GUI Clients
    Linux: sudo apt-get install git

    vervolgens kan je een gratis online server gebruiken zoals Github(github.com/) of Bitbucket(bitbucket.org/). Waar je meteen met aan de slag kunt!
    Bitbucket is gelimiteerd, maar als student kan je gratis een professioneel account krijgen. Ik zelf ben fan van Atlassian en gebruik dan ook bitbucket volop en kan het iedereen aanraden.

    Tenslotte wou ik nog vermelden dat GIT oorspronkelijk gemaakt is door Linus Torvalds (ontwikkelaar van de Linuxkernel). Altijd leuk om te weten ;)

    Voor verdere vragen, fouten die ik gemaakt heb of wat dan ook, laat je best een berichtje achter.

    Quitta

    1,934 times read

Comments 2

  • reCAPTCHA -

    Wat wel goed is om toe te voegen is het volgende:
    -Met een clone copieer je alle branches van de server naar je local machine
    -Je commit eerst op je locale machine, naar je locale, gecopieerde repo
    -Dan pas sync je de gecomitte changes naar een server side git repo
    -De beste methode is denk ik om 1 stap verder te gaan, en feature branching toe te passen. Maar eerst zou ik ervaring op doen met een simpele -master unstable branch en stable release branches erop.
    -feature branches geven de mogelijkheid om je sources al naar de server op te sturen voor het af is, of met een groepje aan een feature te werken, zonder dat andere daar last van hebben;
    -stable release branching doe je als je master feature complete is. bijvoorbeeld voor je release 1.0.x van je product.
    -feature branches geven je ook iets meer armslag om te kiezen naar welke versie(s) van de product je een feature wil mergen.

  • DirkZz -

    Goed onderwerp om aan te kaarten, wat ook interessant is om te lezen; git-scm.com/doc hier worden alle commando's goed en helder uitgelegd. En hier kan je verschillende stijlen workflows bekijken in combinatie met git atlassian.com/git/tutorials/co…orkflows/gitflow-workflow.