Git Installatie voor beginners

( 6 september 2011 )

Git is een modern versie-beheer systeem. Git is veel sneller dan versiebeheer systemen als Subversion en CVS. Een werkmap die Git gebruikt bevat de volledige repository met een compleet historisch overzicht van aanpassingen in je code die in het verleden gedaan zijn. Git is niet afhankelijk van een centrale plek waar het versiebeheersysteem draait zoals bij CVS en Subversion wel het geval is.

In onderstaande uitleg geven we aan hoe je een Git installatie doet op een debian of ubuntu machine en lokaal de code binnenhaalt en wijzigingen van de lokale repository merged met de plek waar de Git installatie staat. Dit betreft een eenvoudige uitleg waarin slechts 1 gebruiker inlogt op de machine.

Installeer op de webserver Git en maak een gebruiker aan die Git repositories gaat beheren:

sudo -i
apt-get update
apt-get install git-core
adduser git

 

De repositories staan in dit voorbeeld in de home-directory van de zojuist aangemaakt git user. Maak een lege Git repository, voorbeeldproject, aan op de volgende wijze:

su - git
mkdir voorbeeldproject.git
cd voorbeeldproject.git
git --bare init

 

Log hierna uit op de webserver en ga naar je lokale ontwikkel-machine, hierop maken we het voorbeeldproject aan en zetten er wat files in. Uiteraard kun je hier ook bij een bestaand project al je files inzetten en onderstaande instructies volgen; 'git init' maakt een lokale Git repository aan en 'git add .' voegt alle nieuwe of gewijzigde bestanden toe aan de Git repository. In het voorbeeld dien je jouwgitserver.nl dien je te vervangen door de URL of het ip nummer van je webserver. Door het 'git remote add' commando voeg je de eerder aangemaakte repository op de webserver toe om naar te kunnen pushen, door middel van het 'git push origin master' commando merge je de lokale branch met de master branch op de webserver.

mkdir /var/www/voorbeeldproject
cd /var/www/voorbeeldproject
git init
touch henkie.txt
touch hond.txt
touch bier.php
git add .
git commit -m 'eerste spullen in git'
git remote add origin git@jouwgitserver.nl:voorbeeldproject.git
git push origin master

 

De webserver draait nu Git en de code van de lokale ontwikkel-omgeving staat erin. Op de productie-server kan nu de code worden neergezet door daar een 'git clone' te doen (uiteraard moet daar ook eerst Git geinstalleerd zijn):

git clone git@jouwgitserver.nl:voorbeeldproject.git /var/www/livemap

 

Wanneer je op de lokale machine aanpassingen hebt gedaan en gepushed hebt kun je de wijzgingen live doorvoeren door op de live server het volgende uit te voeren:

cd /var/www/livemap
git pull origin master

 

In de meeste gevallen werk je in een team, daarin kan iedereen op zijn lokale machine zijn kenmerken voor Git ingeven via:

git config --global user.name "Henkie Janssen"
git config --global user.email "henk@hond.nl"

 

Je kunt bekijken hoe de settings staan via:

git config --list

 

In een volgende tutorial zullen we uitleggen hoe je met behulp van gitolite of gitosis de toegang tot je git repositories op meer geavaceerde wijze kunt beheren en toegangs-niveau's kunt instellen per gebruiker. In de volgende tutorial zullen we ook uitleggen hoe je een web-interface maakt om je Git repositories op te bekijken en wijzigingen te zien.

Bovenstaand voorbeeld gaat bij iedere push of pull call vragen om het ssh login wachtwoord voor de git gebruiker. Dit kan ook opgelost worden door gebruik te maken van een public en private keypair wat we ook bespreken in een volgende uitleg. Voor beginners met Git (zoals wij) is bovenstaand uitgangspunt een prima oplossing.

Opmerkingen, tips en verbeteringen m.b.t. deze post zijn uiteraard altijd welkom, voer daarvoor hieronder je reactie in!

Klinkt allemaal heel mooi, maar kan het ook zonder commandoregel in een GUI? Ik ben niet zo van dat code kloppen...
Door Christiaan de Leeuw op 27 september 2011
Bedankt voor de git tutorial!
Door Willem op 27 september 2011
Interessante Bart, zal toch eerst Ubuntu moeten leren. Maar vervolgens sla ik deze erop na.
Door Victor op 15 november 2011
Het is duidelijk tut, ik kijk al naar de volgende tutorial
Door Noureddine op 30 december 2011

Uw reactie