ID.nl logo
GitHub-branches maken: zo werkt de staging area
© Reshift Digital
Huis

GitHub-branches maken: zo werkt de staging area

Bij het werken met Git moet je vooral wennen aan de zogeheten staging area, een soort tijdelijke opslag. Het is een krachtig hulpmiddel, maar ook lastig te doorgronden als je net begint. In deze workshop geven we tips hoe je dit optimaal benut. Wil je GitHub-branches maken, dan geven wij hier ook wat tips voor.

Bij Git zet je wijzigingen eerst in een zogeheten staging area, een soort tijdelijke opslag, voordat je met een zogenoemde commit de wijzigingen naar je repository overzet. Je kunt hier gemakkelijk in verdwalen. In deze workshop geven we belangrijke tips om het werken op de verschillende niveaus van Git wat comfortabeler te maken!

Overzicht niveaus

Bij het werken met Git is het handig om de onderstaande afbeelding met het overzicht als een soort cheatsheet te gebruiken. Het geeft de verschillende niveaus weer, te weten: je werkdirectory met je programmabestanden, de staging area van Git met tussentijdse wijzigingen, je lokale repository op het systeem en eventueel nog een remote repository zoals GitHub. Je ziet ook de belangrijkste opdrachten die je tussen die niveaus kunt geven. Zo zie je git add waarmee je een bepaald bestand naar de staging area kunt zetten. Met de vlag -u in git add -u hoef je geen bestandsnaam op te geven, maar worden in één handeling de wijzigingen in gevolgde bestanden naar de staging area gezet. En je ziet de opdracht git commit waarmee je wijzigingen doorzet van de staging area naar de lokale repository, waarna de staging area weer leeg is en je aan de volgende veranderingen kunt gaan werken.

©PXimport

Werken zonder staging area

Eventueel kun je zonder staging area werken als je die niet nodig denkt te hebben. Het werkt dan meer in lijn met Subversion (svn), een bekend alternatief voor Git. Je kunt namelijk, zoals je ook in het overzicht ziet, met één opdracht de beide opdrachten git add en git commit combineren in één opdracht waarmee je dus de staging area overslaat:

git commit -a

Je kunt hierbij ook een beschrijving toevoegen met:

git commit -am "Beschrijving van de aanpassing"

Het lukt overigens alleen voor bestanden die je al volgt, dus waar je eerder de opdracht git add hebt gegeven. Een enkele keer is dit handig, maar meestal zul je de staging area willen gebruiken.

©PXimport

Veranderingen bekijken

Tijdens het werken met Git komt de opdracht git status van pas, waarmee je kunt zien welke bestanden zijn veranderd in je werkdirectory ten opzichte van de staging area. Wil je precies zien welke veranderingen dat zijn, dan gebruik je git diff, eventueel gevolgd door de bestandsnaam. Een rode regel met minteken ervoor geeft aan dat die regel is verwijderd. Daaronder zie je dan in het groen de nieuwe regel met een plusteken ervoor. Wil je zien welke veranderingen je in de staging area hebt klaargezet, dan geef je de opdracht (eventueel gevolgd door een bestandsnaam):

git diff --staged

Wijzigingen ongedaan maken

Stel dat je een wijziging hebt gedaan aan bepaalde programmacode in de werkdirectory, maar je bent hier niet tevreden mee? Als voorbeeld hebben we enkele regels toegevoegd die de huidige datum en tijd op het scherm te tonen. Je ziet welke veranderingen er zijn ten opzichte van de versie in de staging area met de opdracht:

git diff demo.go

Deze opdracht laat in de output weer de toegevoegde regels in het groen zien en de verwijderde regels in het rood. Zoals je ook in het overzicht hierboven kunt zien, kun je de versie uit de staging area terugzetten met:

git checkout demo.go

De veranderingen zijn nu ongedaan gemaakt. Je kunt ook eerdere commits terugzetten (zie volgende twee paragrafen).

Eerdere commits

Om terug te gaan naar een van de eerdere commits, is het handig eerst een lijst met eerdere commits op te vragen. Daarna kun je eventueel vergelijkingen maken. Als voorbeeld hebben we de datum/tijdmelding weer toegevoegd aan de programmacode, eerst in het rfc850-formaat en daarna in het rfc3339-formaat. Beide veranderingen hebben we gecommit. Met git log kun je een lijst met alle historische commits opvragen. Dit kan eventueel in één regel per commit met:

git log --oneline

Je ziet hierbij dat een zogenoemde hash aan elke commit is toegekend als referentie en het eerste unieke gedeelte van die hash gaan we gebruiken. De laatste commit is altijd bekend onder de naam HEAD. Je kunt vergelijkingen maken tussen commits. Benoem dan de twee commits die je wil vergelijken door ofwel HEAD of de hash in te vullen, bijvoorbeeld:

git diff HEAD b9eebfe

©PXimport

Commit terugzetten

Om een commit terug te zetten, heb je meerdere opties. Zo kun je een reset-opdracht geven waar je dan (een deel van) de hash achter zet, bijvoorbeeld:

git reset --hard b9eebfe

Na deze opdracht bestaan de latere commits in feite niet meer, alsof ze nooit hebben plaatsgevonden. Ook ben je alle niet-toegevoegde veranderingen in je werkdirectory kwijt! Je kunt als veiliger alternatief een checkout-opdracht gebruiken met daarachter ofwel HEAD voor de laatste commit ofwel de hash voor een specifieke commit, bijvoorbeeld:

git checkout HEAD

Hierbij worden de bestanden in je werkdirectory aangepast naar de bewuste commit. Om eventueel weer terug naar de eerdere hoofdtak gebruik je:

git checkout master

Vertakkingen

De checkout die we hierboven noemden, kom je vooral tegen bij het werken met vertakkingen ofwel branches. Stel dat je de commit met hash b9eebfe de naam rfc850-branch wil geven, dan geef je de opdracht:

git checkout -b rfc850-branch b9eebfe

Hiermee wordt dankzij de optie -b automatisch de nieuwe branch rfc850-branch aangemaakt en wordt vervolgens de werkdirectory aangepast naar de bewuste commit met de hash b9eebfe. Je werkt dan in deze vertakking, waar je uiteraard ook weer commits kunt gaan maken. Zoals eerder gezegd, kun je eventueel weer terug naar de master, in feite de hoofdtak, met:

git checkout master

Om in het vervolg direct naar de vertakking rfc850-branch te gaan, gebruik je:

git checkout rfc850-branch

Zulke vertakkingen zul je vooral gebruiken om functies apart van de master uit te werken die je later eventueel weer toevoegt aan die master, ook wel ‘merge’ genoemd.

©PXimport

▼ Volgende artikel
Fortnite-makers moeten in Nederland miljoenenboetes betalen
Huis

Fortnite-makers moeten in Nederland miljoenenboetes betalen

Epic Games, de ontwikkelaar en uitgever van Fortnite, moet in Nederland twee boetes van in totaal 1,125 miljoen euro betalen. Dit omdat het bedrijf kinderen op een oneerlijke manier aanzet om aankopen te doen in het populaire battle royale-spel.

Nieuw op ID: het complete plaatje

Misschien valt het je op dat er vanaf nu ook berichten over games, films en series op onze site verschijnen. Dat is een bewuste stap. Wij geloven dat technologie niet stopt bij hardware; het gaat uiteindelijk om wat je ermee beleeft. Daarom combineren we onze expertise in tech nu met het laatste nieuws over entertainment. Dat doen we met de gezichten die mensen kennen van Power Unlimited, dé experts op het gebied van gaming en streaming. Zo helpen we je niet alleen aan de beste tv, smartphone of laptop, maar vertellen we je ook direct wat je erop moet kijken of spelen. Je vindt hier dus voortaan de ideale mix van hardware én content.

De Autoriteit Consument & Markt (ACM) legde Epic Games in 2024 al de boetes op. Epic Games ging in hoger beroep, maar de rechtbank in Rotterdam heeft eerder deze week besloten dat de boetes blijven staan en de aanklacht van de ACM dus correct is.

Redenen voor de boetes

Epic heeft met Fortnite volgens de rechtszaak op drie punten de wet overtreden. Zo bevat het spel de Item Shop, waarbij items elke 24 uur worden vervangen. Hiermee wordt volgens het oordeel kunstmatig schaarste gecreëerd en worden kinderen onder tijdsdruk gemotiveerd om snelle en dus mogelijk ondoordachte aankopen te doen. Dit is overigens een vrij vaak voorkomende verkoopstrategie in diverse multiplayergames.

Daarnaast worden Fortnite-spelers - en dus ook kinderen - gebombardeerd met verschillende beelden, video's en berichten die tot aankoop aanzetten. Op die manier wordt het voor hen verleidelijker gemaakt om items en zogeheten Battle Passes te kopen. Volgens Epic Games zetten deze advertenties niet rechtstreeks aan tot aanschaf, omdat men na het klikken op zo'n bericht nog meer stappen moet zetten, maar de rechtbank wuift dat weg.

Tot slot staan er bij sommige items in de Item Shop timers die aflopen. Daarmee wordt gesuggereerd dat sommige items spoedig uit de verkoop gehaald worden, terwijl dat niet altijd het geval is. Ook dit probeerde Epic Games te weerleggen - zonder succes.

Naast de boete moet Epic Games Fortnite aanpassen om jongere spelers te beschermen. Dat zal het bedrijf mogelijk meer geld en moeite kosten dan de daadwerkelijke boetes betalen. Epic heeft de timer inmiddels al uit de Item Shop gehaald, en spelers onder de 16 jaar kunnen geen aankopen met echt geld meer doen zonder ouderlijke toestemming. Daarbij kan er ook ouderlijk toezicht worden ingesteld

Kritische kijk op games

Nederland is niet het enige land waar met een vergrootglas naar Fortnite wordt gekeken: in de Verenigde Staten werden ook al boetes uitgedeeld voor soortgelijke zaken. Sowieso wordt er wereldwijd steeds kritischer gekeken naar de manier waarop met name videogames met een online component met jeugdige spelers omgaan. Een ander bekend voorbeeld is Roblox, dat volgens critici door sommige spelers met kwade bedoelingen als platform wordt gebruikt om kinderen te lokken.

Fortnite is speelbaar op alle moderne platforms, waaronder PlayStation, Switch-consoles, Xbox, pc en smartphones. Het is een van de populairste games van deze tijd. In het spel landen honderd spelers op een eiland en vechten ze het uit tot er maar één speler overblijft. De game is in de loop der jaren echter uitgegroeid tot meer dan dat: er zijn festivals met echte artiesten die optreden, spelers kunnen het uiterlijk van uiteenlopende personages uit allerlei franchises ontgrendelen voor hun eigen personage - van Marvel tot South Park - en er zijn zelfs een racegame en een Lego-versie binnen het platform beschikbaar.

▼ Volgende artikel
Vertrokken Lucasfilm-baas geeft update over aankomende Star Wars-films
Huis

Vertrokken Lucasfilm-baas geeft update over aankomende Star Wars-films

Kathleen Kennedy, de voorzitter van Lucasfilm die eerder deze week aankondigde te vertrekken bij het bedrijf, heeft een update gegeven over verschillende Star Wars-films die er aan zitten te komen.

Nieuw op ID: het complete plaatje

Misschien valt het je op dat er vanaf nu ook berichten over games, films en series op onze site verschijnen. Dat is een bewuste stap. Wij geloven dat technologie niet stopt bij hardware; het gaat uiteindelijk om wat je ermee beleeft. Daarom combineren we onze expertise in tech nu met het laatste nieuws over entertainment. Dat doen we met de gezichten die mensen kennen van Power Unlimited, dé experts op het gebied van gaming en streaming. Zo helpen we je niet alleen aan de beste tv, smartphone of laptop, maar vertellen we je ook direct wat je erop moet kijken of spelen. Je vindt hier dus voortaan de ideale mix van hardware én content.

Dat deed ze in een interview met Deadline, waarin ze ook terugblikt op haar tijd bij Lucasfilm. We wisten al van het bestaan van de aankomende films die ze vervolgens aanhaalde, maar op deze manier wordt er iets meer duidelijkheid gecreëerd over de status van deze projecten.

Mogelijke projecten

Zo werken James Mangold en Beau Willimon aan een script voor een film over het ontstaan van de Jedi - mogelijk genaamd Dawn of the Jedi. Volgens Kennedy heeft het duo een geweldig script geschreven, maar ligt de progressie rondom de film nu tijdelijk stil.

Daarnaast heeft ook Taika Waititi - bekend van de moderne Thor-films, What We Do in the Shadows en Jojo Rabbit - een script ingeleverd die blijkbaar "hilarisch" is. "Het is alleen niet mijn besluit (wat ermee gebeurt), zeker nu ik wegga." Steve Soderbergh en (acteur) Adam Driver willen daarnaast een script van Scott Burns verfilmen. Eerder werd er al een film rondom Drivers personage Ben Solo afgeschoten.

Tot slot is er nog de mogelijkheid dat Rian Johnson, de maker van The Last Jedi, terugkeert. Kennedy legt uit dat Johnson het erg druk heeft met de Knives Out-films, en dat hij ook bang is geworden van de kritiek die online werd geplaatst rondom zijn meest recente Star Wars-film. In eerste instantie zou Johnson een geheel nieuwe Star Wars-trilogie regisseren, maar dat lijkt nu dus onwaarschijnlijk. Kennedy kon dan ook geen uitsluitsel geven.

Aankomende bevestigde Star Wars-films

Er is in ieder geval veel onduidelijk over de staat van de toekomstige Star Wars-films, maar gelukkig weten we van enkele films dat ze sowieso uitkomen - mede omdat ze al zijn opgenomen.

Zo is daar de Mandalorian-film - The mandalorian and Grogu - geregisseerd door Jon Favreau - die in mei uitkomt - en volgend jaar Star Wars: Starfighter. In die film hebben onder andere Ryan Gosling, Flynn Gray en Matt Smith rollen. Fans kunnen zich de komende jaren dus nog opmaken voor meer dan genoeg Star Wars.

Het vertrek van Kathleen Kennedy

Zoals gezegd treedt Kathleen Kennedy dus af als voorzitter van Lucasfilm. Zij speelde zo'n veertien jaar lang een belangrijke rol binnen deze gigantische franchise. Ze zal wel deels betrokken blijven bij de reeks, onder andere als producent van The Mandalorian and Grogu en Starfighter.

Dave Filoni en Lynwen Brennan nemen het stokje van Kennedy over. Filoni gaat zich richten op de creatieve koers van Lucasfilm en Star Wars, terwijl Brennan de zakelijke kant op zich neemt. Beiden zullen onder leiding staan van Disney-voorzitter Alan Bergman.