Skip to main content

Oefening

Om alles wat gezien werd in dit onderdeel in de vingers te krijgen, doorloop je kritisch onderstaande workflow. Je ziet ook enkele nieuwe commando's, die je vaak zal gebruiken om te werken met Git zoals:

git status: hiermee bekijk je de status voor de bestanden in je map: welke werden nog niet opgenomen in de staging area, welke staan klaar om te committen?

git log: hiermee bekijk je de recente versiegeschiedenis, met een lijstje van de laatste commits.

git diff: hiermee bekijk je het verschil tussen twee versies van een bestand

Aanmaak van een repository op Gitlab 👈​

Je zou perfect kunnen starten door lokaal een nieuwe repository aan te maken met git init, maar in de praktijk zal je meestal starten door een repository aan te maken op een platform zoals Gitlab, Github of Bitbucket. Vandaar dat we hier starten met het aanmaken van een nieuwe repository op Gitlab.

Info

Elke student zal onder https://gitlab.com/ikdoeict een persoonlijke subgroup hebben, waar die zijn/haar eigen repositories kan aanmaken. Voor de meeste vakken in de opleiding zal dus gevraagd worden om onder je eigen subgroup een repository aan te maken.

  • Maak in je eigen subgroup een nieuwe repository aan met de naam "mijn eerste project".

    • Kies hiervoor Create Project > Create blank project.
    • Vul bij Project name de naam mijn eerste project in.
      Laat de andere opties op hun standaardwaarde staan behalve "Initialize repository with a README", dat moet je uitvinken. nieuw_project
    • klik op de knop Create project.
  • Je krijgt nu van Gitlab een pagina te zien met enkele instructies om deze nieuwe repository te gebruiken.
    Die zullen we straks verder hieronder toepassen.

info

Op dit moment heb je dus een nieuwe, lege repository aangemaakt op Gitlab. Online kunnen we daar weinig mee aanvangen. We werken vooral lokaal op onze pc met Git, en we zullen deze "remote repository" dus moeten koppelen met onze lokale PC.

Aangemaakte repository lokaal brengen 👈​

Hierboven heb je een nieuwe lege repository aangemaakt op Gitlab.
Nu gaan we die repository lokaal op onze PC brengen, zodat we er lokaal mee kunnen werken.

  • Kopieer de URL van je repository. Je vindt die terug op de pagina van je repository, onder de knop Clone.
clone_url
  • Open je Git bash terminal (Windows) of je favoriete shell (Linux)

  • Navigeer naar de locatie waar je je projecten bewaart (bijvoorbeeld je home directory of een specifieke map zoals Documents/School/Projects, afhankelijk van je voorkeur).

  • Indien het nog niet gebeurd is (controleer met git config --list), stel dan je user.name en user.email in met het git config commando.

  • Kloon de repository met het git clone commando, gevolgd door de URL die je hierboven kopieerde:

    git clone https://gitlab.com/ikdoeict/xxxxxxx/mijn-eerste-project

    Dit commando maakt een nieuwe map mijn-eerste-project aan in je huidige directory, en haalt de inhoud van de remote repository op naar je lokale PC.

  • Met het commando git status kan je zien wat de huidige status is van je repository. In deze fase zal dat uiteraard nog niet veel opleveren... Dit is een nieuwe, lege repository.

Staging & committing 👈​

Om nu iets te kunnen toevoegen en later te committen in de repository, moeten we eerst een of meerdere bestanden aanmaken.

  • Navigeer met cd mijn-eerste-project naar de map van je project.

  • Maak in dit project, d een bestand jokes.adoc aan met volgende inhoud:

    = Git jokes

    * The problem with git jokes is that everyone has their own version.

  • Voer nog eens git status uit. Vind je de readme.adoc terug bij de untracked files?

    Output:

    On branch master

    No commits yet

    Untracked files:
    (use "git add <file>..." to include in what will be committed)
    jokes.adoc

    nothing added to commit but untracked files present (use "git add" to track)

  • Plaats dit bestand in de staging area met git add

  • Ook nu voer je nog eens git status uit. Nu is het bestand wel getracked, klaar om toe te voegen in de repository met een commit.

  • Commit nu het bestand met git commit. Voeg daarbij een passende message toe: "Add first joke".

  • Ga met git log na als je commit werd opgenomen in de geschiedenis. Je ziet daar ook de integrale commit hash staan. De eerste 7 karakters daarvan worden de commit id genoemd. Je kan die gebruiken om naar een bepaalde commit te refereren, zonder de hele hash te moeten typen.

tip

Vind je de output toch wat te spartaans, dan vind je online tal van mensen die met de vele parameters van het log commando speelden om een mooiere output te krijgen.

Probeer bijvoorbeeld:

git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative" 

Daarmee maak je een nieuw commando git lg aan dat zorgt voor een (subjectief uiteraard 🙂) mooiere output...

Aanpassingen maken & doorvoeren 👈​

  • Voeg nog een tweede mop toe aan het bestandje jokes.adoc:

    * git-blame: ruining friendships since 2006
  • Stage dit bestand met de nieuwe wijziging, en voer een commit uit met een passende boodschap.

  • Controleer met git log de output.

    Output

    commit 975a757b15102f8604933614f91b267901399a00 (HEAD -> master)
    Author: Roel Van Steenberghe <roel.vansteenberghe@odisee.be>
    Date: Sun Apr 11 15:49:14 2021 +0200

    add second joke

    commit c6f68c8a12533a3a7e29d973a2029fe79b45ba79
    Author: Roel Van Steenberghe <roel.vansteenberghe@odisee.be>
    Date: Sun Apr 11 15:46:13 2021 +0200

    add first joke

  • Ga met git diff na wat het verschil is tussen beide commits. Voeg uiteraard de juiste commit-id's toe

Voorbeeld:

git diff 975a757 C6f68c8