Indholdsfortegnelse

Jeg har lavet fejl og vil fordtryde en ændring

Læringsmål

Du skal kunne:


Teori

git restore

git reset

git revert


Git: restore, reset og revert — Forklaring + Øvelser

Forestil dig, at Git er et skrivebord, hvor du arbejder på filer.
Noget er kladde (working directory), noget er klar til commit (staging), og noget er gemt i historikken (commits).
Nogle handlinger er lokale og ufarlige, andre kan være problematiske i samarbejde.

git restore

„Fortryd kladde“

Bruges til at fortryde ændringer i arbejdsfiler, før du har lavet commit.

Billede i hovedet: Du har tegnet på et papir, men fortryder tegningen → du smider papiret ud og tager en ny kopi fra skuffen.


git reset

„Ryd skrivebordet (lokalt)„

Bruges til at spole projektet tilbage i historikken – men kun lokalt. Derfor *ikke sikkert* ved samarbejde.

Billede i hovedet: Du har lavet tre tegninger (commits). Du vil slette de to sidste → du river dem ud af din egen mappe. Andres mapper ændres ikke.


git revert

„Annullér i historikken (sikkert ved samarbejde)„

Bruges til at lave en ny commit, der fortryder en tidligere commit – uden at ændre historikken.

Billede i hovedet: Du har tegnet en streg i mappen. I stedet for at rive siden ud, laver du en ny tegning, hvor du visker stregen ud. Alle kan se, hvad der er sket.


Kort opsummering

Kommando Betydning Hvornår bruges det? Sikkert i samarbejde?
git restore Fortryd kladde Når du vil tilbage til sidste gemte version Ja
git reset Ryd skrivebord (lokalt) Når du vil spole din lokale historik tilbage Nej
git revert Annullér i historikken Når du vil fortryde en delt commit Ja

Checkpoints

Du skal kunne:


Øvelse 1 – "Fortryd kladde" med git restore (nem)

Formål: Lære at gendanne ændrede filer før commit.

Trin:

  1. Opret en mappe og kør git init.
  2. Opret tekst.txt med indholdet:
    • Dette er version A
  3. Commit filen.
  4. Ændr filen til:
    • Dette er version B
  5. Kør: git restore tekst.txt

Forventet resultat: Filen viser igen „Dette er version A“.

Checkpoints:


Øvelse 2 – "Ryd skrivebordet" med git reset (mellem)

Formål: Forstå soft/mixed/hard reset uden at ødelægge remote.

Trin:

1. Opret et repo uden remote.
2. Lav tre commits: "A", "B", "C".
3. Kør ''git log --oneline'' og noter id for "B".
4. Kør: ''git reset --hard <id-for-B>''

Forventet resultat:

Checkpoints:


Øvelse 3 – "Fortryd i historikken" med git revert (svær)

Formål: Forstå hvordan man fortryder en commit uden at ændre historikken.

Trin:

1. Lav commit 1: opret ''tal.txt'' med tallet ''1''.
2. Lav commit 2: skift tallet til ''2''.
3. Se loggen: ''git log --oneline''
4. Revert commit 2:  
   ''git revert <id-for-commit-2>''

Forventet resultat:

Checkpoints:


Øvelse 4 – Case: "Git-katastrofen" (team-øvelse)

Scenarier (vælg 1):

Succeskrav:


Mini‑quiz

  1. Hvilken kommando ændrer ikke historikken?
  2. Hvilken kommando er sikker i samarbejde?
  3. Hvad gør git reset –hard ved dit working directory?
  4. Kan git restore gendanne en fil uden at ændre historikken?
  5. Hvad er forskellen på at fjerne en commit vs. at modvirke den?

Hint


Til oversigt