Sessie 13: Coach-notities

Doel van deze sessie

Aan het einde van deze sessie kan een ninja:

  • Een GitHub-account aanmaken en inloggen.
  • Een nieuwe repository aanmaken op GitHub.
  • Een lokaal project koppelen aan GitHub met git remote add origin.
  • Code pushen naar GitHub met git push -u origin master (en daarna git push).
  • Een bestaande GitHub-repo clonen naar de laptop met git clone.
  • Wijzigingen ophalen met git pull.

Wat niet verwacht wordt: pull requests, forks, GitHub Actions, issues. Die komen in sessies 14 tot 15.


Voorbereiding (30 min vóór de sessie)

  • WiFi check. Deze sessie is de eerste die internet vereist. Test de verbinding op de dojo-locatie. Minstens 10 laptops tegelijk op WiFi. Als de verbinding traag is, laat ninjas dan in groepjes van 2 tot 3 werken met één GitHub-account.
  • GitHub-account paraat. Maak zelf een testaccount aan als je die nog niet hebt, of gebruik je bestaande. Je moet kunnen demo’en.
  • E-mailtoegang. Check of ninjas bij hun e-mail kunnen. GitHub vraagt e-mailverificatie. Als een ninja geen toegang heeft tot e-mail: verificatie kan later. Ze kunnen de rest van de sessie gewoon doen; alleen bepaalde acties (zoals een organisatie aanmaken) vereisen verificatie.
  • Authenticatie-methode uitleggen. GitHub gebruikt geen wachtwoorden meer in de terminal. Leg de twee methodes uit (browser-based auth en Personal Access Token; zie Stap 3 van de sessie).

Tijdsindeling (3 uur)

TijdActiviteit
0:00 tot 0:10Herhaling sessie 11 tot 12: commits, branches. Wat staat er lokaal?
0:10 tot 0:25Projector: wat is GitHub? Demo: github.com verkennen
0:25 tot 0:50Accounts aanmaken (iedereen tegelijk; dit duurt het langst)
0:50 tot 1:15Projector: nieuwe repo op GitHub, git remote add, git push
1:15 tot 1:30Pauze
1:30 tot 2:00Zelfstandig: bestaand project pushen naar GitHub
2:00 tot 2:20Projector: git clone: een repo van GitHub naar je laptop halen
2:20 tot 2:45Zelfstandig: clonen, wijzigen, pushen, pullen
2:45 tot 3:00Showcase, cliffhanger, take-home

Veelgestelde vragen

“Moet ik betalen voor GitHub?” Nee. Het gratis abonnement geeft je onbeperkt publieke én private repositories. Alleen voor geavanceerde team-features betaal je. Voor alles wat wij doen is gratis genoeg.

“Wat is het verschil tussen Public en Private?” Public = iedereen op internet kan je code zien. Private = alleen jij (en mensen die jij uitnodigt). Voor CoderDojo-projecten is public prima: je bouwt aan je portfolio. Maar als je ooit een project met wachtwoorden of persoonlijke data maakt, zet het dan op private.

“GitHub vraagt om een wachtwoord in de terminal, maar mijn wachtwoord werkt niet!” GitHub accepteert sinds 2021 geen wachtwoorden meer via de terminal. Je moet ofwel inloggen via de browser (GitHub opent een venster), ofwel een Personal Access Token gebruiken. Zie Stap 3 van de sessie.

“Ik krijg ‘Permission denied’ bij git push Meestal betekent dit: je probeert te pushen naar een repo die niet van jou is, of je authenticatie is verlopen. Check: sta je in de juiste map? Is de remote correct? (git remote -v). Probeer opnieuw in te loggen.

“Wat als ik per ongeluk een wachtwoord of API-key push?” Stop meteen. Verander het wachtwoord of de key onmiddellijk. Daarna: Google “BFG Repo-Cleaner” of “git filter-branch” om het uit de geschiedenis te verwijderen. Maar onthoud: als iemand je repo al gecloned heeft, hebben zij het wachtwoord nog steeds. De echte oplossing is: nooit wachtwoorden in Git stoppen. Gebruik .gitignore en environment variables.


Hints voor Stretch en Expert

Stretch: meerdere remotes: Je kunt meerdere remotes toevoegen: git remote add backup https://gitlab.com/.... Handig voor extra back-ups. Gebruik git remote -v om ze te zien.

Expert: git push zonder -u: De eerste push heeft -u origin master nodig om de upstream-branch in te stellen. Daarna onthoudt Git de koppeling en is git push genoeg. Als je pusht vanaf een andere branch dan master, doe dan git push -u origin branch-naam de eerste keer.


Cliffhanger-script

“Je code staat online. Maar wat als je samenwerkt met iemand anders? Hoe zorg je dat jouw code niet botst met die van een ander? Hoe vraag je netjes: ‘Mag deze wijziging in het hoofdproject?’ Volgende keer: pull requests, de voordeur van elk professioneel softwareproject.”


Praktische valkuilen

  1. GitHub-account aanmaken duurt langer dan je denkt. E-mailverificatie, een gebruikersnaam kiezen, de welcome-flow doorklikken: reken 10 tot 15 minuten per ninja. Laat ze dit tegelijk doen en loop rond voor hulp.

  2. Typo’s in usernames. git remote add origin https://github.com/JOUW_USERNAME/repo.git: één typfout en de remote werkt niet. Check URLs dubbel voor ze pushen.

  3. Hoofdlettergevoeligheid. github.com/JOUW_USERNAME is niet hetzelfde als github.com/jouw_username. GitHub-usernames zijn case-insensitive, maar het is een goede gewoonte om exact te kopiëren wat GitHub toont.

  4. Eerste push kan traag zijn. Afhankelijk van de internetverbinding kan de eerste push enkele seconden tot een minuut duren. Waarschuw ninjas dat ze niet in paniek moeten raken als de terminal even “hangt.”