Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Tilbageførsel af en Specifik Commit | Fortryd Ændringer
Git Essentials

Tilbageførsel af en Specifik Commit

Stryg for at vise menuen

git revert

For at fortryde en specifik commit, bruges kommandoen git revert. Denne kommando opretter en ny commit, der omvender de ændringer, som den angivne commit har introduceret. Grundlæggende syntaks:

git revert <commit-hash>

I stedet for at bruge HEAD (som retter sig mod den seneste commit), angives hash for den commit (commit ID), du ønsker at fortryde, ved at erstatte <commit-hash> med den faktiske hash-værdi.

Mere om hashes

Hver commit har en unik ID — en 40-tegns hexadecimalt streng bestående af cifre (0–9) og bogstaver (a–f). Denne identifikator kaldes en hash. Se nu den seneste commit:

git log -n 1
Den seneste commit

Her er dens hash:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Bemærk

Du vil have en anden hash for denne commit af den nedenfor forklarede grund.

Commit-hashen beregnes ved hjælp af SHA-1-algoritmen baseret på følgende oplysninger:

  • Commit-besked;
  • Dato;
  • Forfatter;
  • Snapshot af working tree;
  • Hash af parent commit (eller commits, hvis der er mere end én parent).

Hvis committet er det første i repositoryet, beregnes hash af parent commit tilsyneladende ikke.

Beregning af hash

Da alle disse commit-oplysninger bruges til at beregne dets hash, sikrer brugen af hashes som commit-ID'er konsistensen af depotet. Desuden er sandsynligheden for, at to forskellige commits har samme hash (sandsynligheden for kollision), ekstremt lav, så det er meget usandsynligt, at det sker ved et tilfælde.

Grundlæggende vil hash-værdien ændre sig, hvis noget ændres i committet. Det betyder, at hvis dataene bliver korrupte af en eller anden grund, kan Git bruge hashen til at identificere dette.

Note
Bemærk

Når man ændrer et commit, ændres commit-ID'et, hvilket er grunden til, at det er bedre ikke at bruge kommandoen git commit --amend, når man arbejder med eksterne repositories.

Eksempel på arbejdsgang

Før du beslutter, hvilken commit der skal fortrydes, vis de fire seneste commits:

git log -n 4
De fire seneste commits

Der er en commit, hvor filen recipe.txt blev tilføjet. Fortryd denne commit for at oprette en ny, der ophæver disse ændringer og effektivt sletter filen. I dette eksempel er commit-hashen:

043b634d76a7a7744757350512b6367417c29e0

Din commit-hash vil være anderledes. Nu skal du fortryde denne commit:

git revert 043b634d76a7aa7744757350512bb3b7417c29e0

Erstat denne hash med din egen hash.

Git revert

Endnu en gang åbnes standardteksteditoren med standard commit-beskeden for tilbagerulningen. Lad beskeden være uændret.

Standard besked for fortryd commit

Luk derefter teksteditoren korrekt, og vis ændringerne foretaget i det seneste commit:

git show HEAD
Det seneste commit

7 sletninger fandt sted, hvilket betyder, at alle syv linjer i filen blev fjernet. Bekræft nu, at selve filen blev slettet, ved at liste alle ikke-skjulte filer og mapper i projektmappen:

ls -l
Visning af filer og mapper

Filen recipe.txt er blevet slettet med succes.

question-icon

Match handlingerne med de respektive kommandoer.


Revert the latest commit:

Revert a specific commit:

Unstage changes:

Revert unstaged changes:

Unstage changes and then revert the changes in the working directory:

Overwrite the existing commit:

Klik eller træk`n`drop elementer og udfyld hullerne

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 3. Kapitel 5
some-alt