Oorpsonkelijk ontworpen in 2005 door Linus Torvalds, git is in eerste instantie bedoeld als versiebeheer voor broncodes om programmeurs te helpen een compleet overzicht te hebben van de releases met de mogelijkheid om naar eerdere releases terug te keren.
In tegenstelling tot andere versiebeheer oplossingen werkt git met een lokale kopie van de software die opgehaaald is van de git-server. Vervolgens kan de programmeur lokaal wijzigingen doorvoeren en daarna de wijzigingen lokaal samenvoegen met de oorspronkelijk opgehaalde code en deze nieuwe versie dan tenslotte naar de git-server sturen om uiteindelijk een nieuwe versie op de git-server beschikbaar te stellen.
Git is open-source en beschikbaar voor Windows, MacOS en Linux. Om b.v. git te installeren op MacOS volstaat hdat met het commando:
$ brew install git
Voor Windows is er een installatiebestand beschikbaar en Linux/Unix maakt gebruik van de package manager.
GIT basics
Eenmaal geïnstalleerd is het commando ‘git’ beschikbaar. Git werkt met zogenaamde ‘repositories‘ en om een repository aan te maken is er het commando ‘git init‘. Dit maakt een .git directory met hierin een configuratiebestand met instellingen voor het betreffende project. Nu wil git graag weten wie de programmeur is dus als eerste maken we ons bekend met:
$ git config --global user.name "volledige naam" $ git config --global user.email "user@domain.com"
Hierna kan de initialisatie in het project gedaan worden met:
$ cd project-directory $ git init
Er verschijnt een melding dat er een lege repository gemaakt is. Om de bestanden nu in deze repository te plaatsen geven we de volgende commando’s:
$ git add . $ git commit -m "Initial commit"
Er is nu een zogenaamde ‘branch‘ aangemaakt en deze heet ‘master‘. Vanuit deze master-branch kunnen nieuwe branches gemaakt worden. De nieuwe branch wordt in gebruik genomen met een ‘checkout‘ waarna wijzigingen worden aangebracht en ook deze nieuwe branches worden dan uiteindelijk ge-commit. Bijvoorbeeld:
$ git branch wijziging-01 $ git checkout wijziging-01 ... bestanden worden gewijzigd ... $ git add * $ git commit -m "Omschrijving wijziging"
Als we helemaal tevreden zijn met de wijziging(en) kunnen we onze nieuwe branch ‘mergen‘ met de master.
$ git checkout master $ git merge wijziging-01 master $ git branch wijziging-01 -d
Het laatste commando verwijderd de branch die ge-merged is en dus niet meer nodig. Vervolg-wijzigingen komen in een nieuwe branch die dan later weer ge-merged kan worden.
Happy coding…!