02 - GIT - stage en commit

Stagen en Committen
1 / 16
volgende
Slide 1: Tekstslide
ICTMBOStudiejaar 1-4

In deze les zitten 16 slides, met interactieve quizzen en tekstslides.

time-iconLesduur is: 60 min

Onderdelen in deze les

Stagen en Committen

Slide 1 - Tekstslide

Deze slide heeft geen instructies

Leerdoel
Aan het einde van de les kun je uitleggen wat stagen en committen in Git inhouden en kun je een eenvoudige opdracht uitvoeren.

Slide 2 - Tekstslide

Deze slide heeft geen instructies

Wat weet je al over het stagen en committen in Git?

Slide 3 - Woordweb

Deze slide heeft geen instructies

Wat is Git?
Git is een gedistribueerd versiebeheersysteem dat wordt gebruikt om wijzigingen in broncode te beheren. Het biedt functionaliteiten zoals staging en committen.

Slide 4 - Tekstslide

Deze slide heeft geen instructies

Stagen in Git
Stagen houdt in dat je 
wijzigingen selecteert 
die je wilt opnemen in 
de volgende commit. 
Dit geeft je de mogelijk-
heid om je wijzigingen 
te controleren voordat je
 ze vastlegt.
   $ ls
   bestand1.html   bestand2.html   bestand3.html

   $ git add bestand1.html
   $ git add bestand3.html

   $ git status
   On branch master
   Changes to be committed:
   (use "git rm --cached <file>..." to unstage)
        new file:   bestand1.html
        new file:   bestand3.html

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

Slide 5 - Tekstslide

Deze slide heeft geen instructies

Committen in Git
Committen betekent 
dat je de gestagede 
wijzigingen definitief 
opslaat in de repository,
waardoor er een nieuwe 
versie van de code 
wordt gecreëerd.
   $ git log
   fatal: your current branch 'master' does not have any commits yet
   
   $ git commit -m "Add new html files for functionality"
   [master (root-commit) d55fac3] Add new html files for functionality
     2 files changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 bestand1.html
     create mode 100644 bestand3.html

   $ git log
   commit d55fac3e29f1f892468216c7106b90f400f0b4bb (HEAD -> master)
   Author: Raymond Asbreuk <rasbreuk@rocvantwente.nl>
   Date:   Sun Feb 18 10:56:05 2024 +0100

         Add new html files for functionality

   $

Slide 6 - Tekstslide

Deze slide heeft geen instructies

Git-log
Het commando 'git log'
toont een overzicht van
alle eerdere commits
in de repository, 
inclusiefde auteur, 
de datum en het 
commitbericht.
   $ git log
   commit d55fac3e29f1f892468216c7106b90f400f0b4bb (HEAD -> master)
   Author: Raymond Asbreuk <rasbreuk@rocvantwente.nl>
   Date:   Sun Feb 18 10:56:05 2024 +0100

         Add new html files for functionality

   commit d55fac3e29f1f892468216c7106b90f400f0b4bb
   Author: Raymond Asbreuk <rasbreuk@rocvantwente.nl>
   Date:   Sun Feb 18 10:56:05 2024 +0100

         Add new html files for functionality

   $





   $

Slide 7 - Tekstslide

Deze slide heeft geen instructies

Undo Changes
Git biedt verschillende manieren om wijzigingen ongedaan te maken, zoals 'git reset' en 'git revert', die handig kunnen zijn als er fouten zijn gemaakt.

Slide 8 - Tekstslide

Deze slide heeft geen instructies

Git revert
Het 'git revert' commando 
wordt gebruikt om een 
eerdere commit ongedaan 
te maken door een nieuwe 
commit te maken die de 
wijzigingen van de eerdere 
commit omkeert. 
   $ git log --oneline
     9d44ed7 (HEAD -> master) Laatste wijziging
     4df583b Eerdere wijziging
     6257d7e Oorspronkelijke commit

   $ git revert 4df583b

   $ git log --oneline
      69a52b5 (HEAD -> master) Revert "Eerdere wijziging"
      9d44ed7 Laatste wijziging
      4df583b Eerdere wijziging
      6257d7e Oorspronkelijke commit

Slide 9 - Tekstslide

Deze slide heeft geen instructies

Git reset 
Het git reset-commando wordt gebruikt om de huidige HEAD te verplaatsen naar een specifieke commit en optioneel de staging area en werkdirectory aan te passen.
Je hebt hierbij 3 mogelijkheden:
  • soft reset --> git reset --soft [hash]
  • mixed reset --> git [hash]
  • hard reset --> git reset --hard [hash]

Slide 10 - Tekstslide

Deze slide heeft geen instructies

Git reset (soft)
Een "soft reset" behoudt 
de wijzigingen in de 
staging area en werk-
directory, maar verplaatst
alleen de HEAD naar een
eerdere commit. Het is 
als het ware alsof je de 
recente commits "intrekt".
   $ git log --oneline
      9d44ed7 (HEAD -> master) Laatste wijziging
      4df583b Eerdere wijziging
      6257d7e Oorspronkelijke commit

   $ git reset --soft 4df583b

   $ git status
      On branch master
      Changes to be committed:
      (use "git restore --staged <file>..." to unstage)
           new file: bestand3.txt


  

Slide 11 - Tekstslide

Deze slide heeft geen instructies

Git reset (mixed)
Een "mixed reset" (standaard 
gedrag als geen modus 
is gespecificeerd) verplaatst de 
HEAD naar een eerdere commit 
en brengt de wijzigingen terug 
naar de staging area, maar niet 
naar de werkdirectory.
   $ git log --oneline
      9d44ed7 (HEAD -> master) Laatste wijziging
      4df583b Eerdere wijziging
      6257d7e Oorspronkelijke commit

   $ git reset 4df583b

   $ git status
      On branch master
      Untracked files:
      (use "git add <file>..." to include in what will be committed)
        bestand3.txt



  

Slide 12 - Tekstslide

Deze slide heeft geen instructies

Git reset (hard)
Een "hard reset" verplaatst de
HEAD naar een eerdere commit
 en verwijdert ook de 
wijzigingen in de staging area
en werkdirectory. Let op dat
hierdoor eventuele lokale
wijzigingen permanent
verloren gaan.
   $ git log --oneline
      9d44ed7 (HEAD -> master) Laatste wijziging
      4df583b Eerdere wijziging
      6257d7e Oorspronkelijke commit

   $ git reset --hard 4df583b

   $ git status
      On branch master
      nothing to commit, working tree clean

   $ git log --oneline
      bda8750 (HEAD -> master) Eerdere wijzigingen
      28488e5 Oorspronkelijke commit





  

Slide 13 - Tekstslide

Deze slide heeft geen instructies

Opdracht: Stagen en Committen
Opdracht wordt gedeeld via Teams

Slide 14 - Tekstslide

Deze slide heeft geen instructies

Samenvatting
Stagen en committen zijn essentiële onderdelen van Git. Stagen stelt je in staat om wijzigingen selectief op te nemen, terwijl committen een permanente snapshot van je werk maakt.

Slide 15 - Tekstslide

Deze slide heeft geen instructies

Stel 1 vraag over iets dat je nog niet zo goed hebt begrepen.

Slide 16 - Open vraag

De leerlingen geven hier (in vraagvorm) aan met welk onderdeel van de stof ze nog moeite. Voor de docent biedt dit niet alleen inzicht in de mate waarin de stof de leerlingen begrijpen/beheersen, maar ook een goed startpunt voor een volgende les.