n00b pro

03. Github

Dit hoofdstuk is onderdeel van de cursus Ontwikkelomgeving. Andere cursussen in dezelfde reeks: HTML, CSS, Javascript, C#.

Wat is GitHub

Github is een versioning tool, bedoeld om samen te kunnen werken aan één code met een team; je kan altijd terugkeren naar vorige versies. Alvast enkele begrippen:

Github account

Aanmaken

Je bestanden hou je online bij op het online sharingplatform github.com. Registreer eerst voor een gratis account op https://github.com/signup. Let er op dat je met je @student.odisee.be e-mail adres registreert, dit is belangrijk! Als je dit eerder al voor een ander vak deed, dan kun je deze en volgende stap overslaan uiteraard.

Omzetten naar Pro account

Als Odisee-student, kun je je Github account gratis laten omzetten naar een Pro-account. Ga daarvoor naar https://education.github.com/discount_requests/application, en dien een aanvraag in. Let op: de goedkeuring kan tot een dag duren, dus hou daar rekening mee.

In afwachting van de goedkeuring, kan je alvast verder zonder pro-account.

Github Desktop

Om het werken met Github te vergemakkelijken, gebruiken we de Github Desktop app.

Installatie

Download en installeer Github Desktop

Verbinden met Github account

Open Github Desktop, en log in met je Github account. Je kan dit ook achteraf op elk moment nog doen via File, Options:

Log in via de browser:

Repository opzetten

Kijk goed naar de exacte naam die gevraagd wordt voor het vak! Voor academiejaar 2024–2025 is dit (let op de hoofdletters):

Als de naam niet exact correct is, zal de docent je repository niet aanvaarden!

Aanmaken

Log in op github.com, en maak een nieuwe repository aan met de juiste naam:

Docent toevoegen

Vervolgens ga je naar settings, collaborators en klik je op Add people. Daar typ je de gebruikersnaam van je docent in (rogiervdl, ophalvens, polinakozlova, odiseephilippedewinne, fsalliau...) en klik je op add to this repository. Je docent zal je uitnodiging per mail krijgen en accepteren.

Lokaal clonen

Open Github Desktop. Open het programma, en maak hiermee een lokale kopie (clone) van je repo:

  1. kies Add, clone repository...
  2. tik de naam van je repo in, en selecteer het uit de lijst
  3. klik op Choose... en kies een zinvolle locatie
  4. klik op Clone

Vaktemplate toevoegen

Nu gaan we de standaard mappenstructuur en nog een paar bestanden overzetten naar je repository. Je zult een zip vinden op Toledo; waar het staat, hangt af van vak tot vak; je zult het b.v. vinden in module "opzetten leeromgeving":

Die unzip je in de map waar je je repo eerder gecloned hebt. Het zou er voor de verschillende vakken ongeveer zo moeten uitzien (er kunnen kleine wijzigingen zijn van jaar tot jaar):

in volgorde: Basic Web Development, Dynamic Web Development, Introductie in Programmeren en OO Application Development

Maak enkel de repo voor een vak aan als dat gevraagd wordt; begin niet gelijk alle vier aan te maken!

Let er op dat alle bestanden rechtstreeks in je repository staan, dus niet met een tussenmap github template (klassieke fout van studenten):

Readme.md invullen

Het bestand readme.md in de root bevat informatie over je repo. Een ideaal moment om te leren werken met Github, is het invullen van dit bestand, en de wijzigingen pushen naar github.com.

  1. open Visual Studio Code, en open de map van je repo
  2. open het bestand readme.md, vul de informatie aan, en sla het op
screenshot voor Basic Web Development in prof. Bachelor; pas aan voor andere vakken

Commit en publish

Nu zullen we alle wijzigingen – de toegevoegde template met ingevulde readme – synchroniseren met de online repository op Github.com in twee stappen:

  1. ga terug naar Github Desktop; je zult zien dat er wijzigingen gebeurt zijn aan je repo
  2. eerst zullen we de wijzigingen committen, d.w.z. opslaan in onze lokale repository: geef de commit een naam (b.v. "eerste push") en klik op commit to main; als alles goed is, is de lijst met wijzigingen nu leeg dan zullen we de commit kopiëren naar de remote repository op Github.com: klik op Publish branch
commit en publish (screenshots voor Basic Web Development)

Online versie bekijken

Als je online repo op github.com er ongeveer zo uitziet, is alles goed gelukt:

screenshots voor Basic Web Development

Let op: hoewel het theoretisch kan, mag je nooit een wijziging direct doorvoeren op github.com (upload, code aanpassen, bestand verwijderen...)! Je riskeert dat wijzigingen lokaal en online niet meer in sync zijn (de gevreesde merge conflicts), die zeer lastig op te lossen zijn.

Oefeningen pushen

In principe kan je zo vaak pushen als je wil, maar dat maakt het moeilijk achteraf een bepaalde commit terug te vinden.
Een goede stelregel is dus ongeveer: push na elke oefening.

Wijzigingen in VS Code bekijken

VS Code herkent een git repository en geeft in kleur aan welke veranderingen er zijn sinds de laatste commit:

Lokale commit

Als je Github Desktop opent, zie je met gelijkaardige kleurcodes alle wijzigingen. Geef een duidelijke commit mededeling, en druk op de commit knop:

Goede commit messages

Goede commit messages schrijven is niet makkelijk. Het is nochtans belangrijk, want ze komen op veel plaatsen voor, o.a. in het overzicht van de bestanden en de commit historiek. Een voorbeeld van hoe het niet moet:

onduidelijke messages

Een beter voorbeeld:

duidelijke messages

Je kan trouwens ook iconen gebruiken in je commit messages als je dat handig vindt:

gebruik iconen in commit messages

Online pushen

Nu zijn we klaar de gecommitte wijzigingen ook online te pushen:

Bekijken op github.com

Controleer op github.com of alles goed is aangekomen: