Git Introductie

Vandaag installeren we GIT op onze computer en krijg je een introductie in GIT. Hoe werkt het, wat moet je weten, enz. En aan het eind gaan we misschien eindelijk echte code maken.

GIT installeren

Ik bespreek hier alleen hoe je GIT moet installeren op Windows, omdat de meeste bezoekers windows gebruiken. Voor de Macs en Linux gebruikers zijn er handige tutorials te vinden op github:

GIT voor Windows

GIT installeren op Windows is eigenlijk heel erg makkelijk. GIT heeft een Windows versie die, heel toepasselijk, GIT for windows heet. We downloaden de nieuwste versie, bij tijd van schrijven van dit artikel is dat GIT-1.7.10. Vervolgens voeren we het bestandje uit en kunnen we de stappen volgen. Er wordt ons opgegeven moment gevraagd of we alleen de Git Bash willen gebruiken of ook via de Windows Command Prompt. Ik heb er zelf voor gekozen om alleen de GIT bash te gebruiken (die ik vervolgens aan mijn cmd heb gekoppeld) i.p.v. de windows command prompt, omdat het niet helemaal lekker loopt. Als er wordt gevraagd om PuTTY te gebruiken moet je het niet doen, we gaan nu alleen maar SSH gebruiken.

Even voorstellen aan GIT

Vervolgens moeten we ons gaan voorstellen aan GIT, wie zijn we eigenlijk? En wat is ons mail adres? Dit is later handig voor als je samen gaat werken met GitHub of andere GIT-sites, want dan hebben we dit nodig.

Open je eerst GIT bash (Windows > start > alle programma's > git > GIT bash). GIT bash is eigenlijk de gewone CMD command prompt met wat extra GIT functies. Als je het Command Prompt nog bijna nooit gebruikt hebt even een spoed cursus:

Met cd navigeer je van map naar map. Bijv:

1
2
$ cd My-Project
C:\Users\Wouter\My-Project

Als je naar een andere schrijf navigeert moet je doormiddel van de naam van de schrijf + : ernaar toe navigeren:

1
2
3
$ cd D:\Wamp\www\My-Project
$ d:
D:\Wamp\www\My-Project

Nu gaan we weer verder met waar we gebleven zijn. We hebben onze GIT Bash geopend en nu gaan we ons voorstellen. Dit doen we als volgt:

1
2
$ git config --global user.name "Wouter J"
$ git config --global user.email "my@email.com"

Nu hebben we ons voorgesteld!

Tijd om te beginnen

Ja, dan gaan we eindelijk beginnen. Al dat gepraat, daar houd een developer natuurlijk niet van, dus nu gaan we wat codes schrijven.

We maken een heel simpel projectje aan op onze computer. Ik download de HTML5 boilerplate en zet die in D:\Wamp\www\My-Project\. Nu openen we weer onze Bash en gaan we naar deze locatie toe:

1
$ cd \d\wamp\www\my-project\

(in de bash gaat het iets anders dan in de command prompt)

Nu gaan we GIT aanzetten in dit project. Dit doe je met het git init command. Alles commands van GIT beginnen met git gevolgt door en spatie en hun naam. Als je informatie wilt over een bepaald command gebruik je `git help

`.

1
$ git init

Zo nu kunnen we aan de slag! Per verandering gaan we een nieuwe versie aanmaken, dit noemen we vanaf nu een commit. Je moet hierbij niet denken aan de versies in bijv. jQuery. Met een versie bedoelen we dat GIT onthoud hoe het project er op dat tijdstip uitziet.

De opbouw van GIT

GIT werkt met 3 area’s, zoals je ook al in de eerste blogpost hebt gelezen. Deze area’s hebben allemaal een eigen taak:

Werk area

Dit is de map die op de computer staat. Alles wat je dus in de bestanden aanpast en welke bestanden toegevoegd worden zie je direct veranderen.

Staging area

Dit is een geniaal iets in GIT. Voordat je iets commit moet je de bestanden die je wilt commiten in de staging area zetten. Hierdoor hoef je niet alle wijzigen uit de werk area direct om te zetten in de staging area.

Repository area

Als je een commit doet wordt de commit + de status van de bestanden opgeslagen in de git repository (kortweg repo).

Bestanden in de staging zetten

Zo nu gaan we eerst de bestanden in de staging zetten. Dat doe je met de git add method. Deze method verwacht minimaal 1 parameter: de naam/path van het bestand. Door spaties tussen de bestandnamen te laten kun je meerdere bestanden tegelijkertijd in de staging zetten. Maar in ons geval willen we alle bestanden hebben. Waarom zouden we ze dan allemaal apart typen? Hiervoor heeft GIT het . teken uitgevonden, dit betekend alle bestanden. Dus laten we dat maar doen:

1
$ git add .

Tijd voor de commit

Nu we hebben geselecteerd wat we willen commiten is het tijd om de commit te doen. Hiervoor heeft GIT de git commit method. Als je dit command runt probeerd GIT Vim te openen, dit is een editor die in de command prompt werkt. Mocht je dit niet willen moet je de vlag -m gebruiken. Dan kun je de parameter als de naam gebruiken. Maar normaal wordt het dus:

1
$ git commit

Nu wordt er in je command prompt Vim geopend. Vervolgens staat vim in de visual mode, door i in te drukken (of a) ga je naar insert mode (de mode waarin je kan typen). Nu typ je de commit naam (in ons geval ‘Getting Started’) en nu klik je op Ctrl + [ hiermee ga je weer naar visual mode en dan doe je :wq dit write (opslaan) de naam en vervolgens quit (sluit) Vim. Nu ben je weer terug en is je commit opgeslagen. In het schermpje waar je nu bent kun je zien welke bestanden er zijn toegevoegd, aan welke branch (hierover de volgende keer meer) en wat er precies is veranderd.

Checken

Nu willen we kijken of alles gelukt is. Dit doen we met git log, dit laat alle recente commits zien. In ons geval staat er maar 1. Laten we eens kijken wat erin staat

commit 0935a1f33c8e75ab7356c3e94f27f397ffd7b472
Author: WouterJ <my @email.com>
Date:   Thu Apr 12 15:49:27 2012 +0200
    Getting Started

We zien hier een hash (die lange tekenreeks) dat ‘de versie’ voorstelt. Het voordeel van zo’n hash ten opzichte van een simpele versie nummer is dat deze altijd uniek is. Als we de volgende keer aan de slag gaan met commits zul je zien dat alleen de eerste 7 tekens hiervan belangrijk zijn.

Dan komt de gegevens over wie de commit heeft gedaan (handig als je in een team werkt) en de datum waarop. Vervolgens zie je de korte commit beschrijving.

Aanpassen

Oké, we hebben nu heel veel dingen aangepast aan ons project. Tijd voor de volgende commit. We willen dingen apart commiten, eerst de HTML veranderingen, dan de CSS veranderingen en dan JS. Eerst wil ik weten welke bestanden er allemaal sinds de laatste commit gewijzigd zijn, dit doen we met de git status command. Nu krijg je een overzicht van bestanden/mappen die aangepast zijn. Vervolgens voegen we weer alle HTML bestanden toe aan de staging area:

1
$ git add index.html

Hierdoor voegen we index.html toe aan de pagina. Stel dat we nu alle bestanden die eindigen op .html willen toevoegen gebruiken we *.html de * wordt dan door de bestandsnaam vervangen. Nu kunnen we weer onze commit uitvoeren

1
$ git commit -m '[HTML] Added header'

En we voegen heel de css directory toe aan de staging area, voor de volgende commit:

1
2
$ git add css/.
$ git commit -m '[CSS] Changed RESET and added header'`</pre>

Met css/. voeg je alle bestanden in de css map toe aan de commit.

En zo doen we het ook voor de andere commits.

Je kan nog veel meer

Maar je kan nog veel meer met commits. De volgende keer ga ik daarop in en ook op wat andere dingen die je met GIT kunt doen zoals branches, gitignore en meer!