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 | Fortrydelse af Ændringer
Git Essentials

bookTilbageførsel af en Specifik Commit

git revert

For at fortryde en specifik commit, anvendes kommandoen git revert. Denne kommando opretter en ny commit, der omvender de ændringer, som blev introduceret af den angivne commit. 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), der ønskes fortrudt, ved at erstatte <commit-hash> med den faktiske hash-værdi.

Mere om hashes

Hver commit har et unikt ID — en 40-tegns hexadecimal streng bestående af cifre (0–9) og bogstaver (a–f). Denne identifikator kaldes en hash. Nu vises den seneste commit:

Den seneste commit

Her er dens hash:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Bemærk

Du vil have en anden hash for denne commit af den grund, der forklares nedenfor.

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 parent commit-hashen ikke.

Da al denne commit-information bruges til at beregne dens 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 betyder det, at hvis noget ændres i committet, vil dens hash også ændre sig. 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, hvilket commit der skal tilbagerulles, kan du se de fire seneste commits:

De fire seneste commits

Der er et commit, hvor filen recipe.txt blev tilføjet. Reverter dette commit for at oprette et nyt, der fortryder disse ændringer og effektivt sletter filen. I dette eksempel er commit-hashen:

043b634d76a7a7744757350512b6367417c29e0

Din commit-hash vil være anderledes. Nu skal du revertere dette commit:

Erstat denne hash med din egen hash.

Git revert

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

Standard tilbagerulnings-commit-besked

Luk derefter teksteditoren korrekt, og vis de ændringer, der blev foretaget i det seneste commit:

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:

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:

Click or drag`n`drop items and fill in the blanks

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

Suggested prompts:

What happens if I revert a commit that is not the most recent one?

Can I revert multiple commits at once?

What should I do if I encounter a merge conflict during a revert?

Awesome!

Completion rate improved to 3.57

bookTilbageførsel af en Specifik Commit

Stryg for at vise menuen

git revert

For at fortryde en specifik commit, anvendes kommandoen git revert. Denne kommando opretter en ny commit, der omvender de ændringer, som blev introduceret af den angivne commit. 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), der ønskes fortrudt, ved at erstatte <commit-hash> med den faktiske hash-værdi.

Mere om hashes

Hver commit har et unikt ID — en 40-tegns hexadecimal streng bestående af cifre (0–9) og bogstaver (a–f). Denne identifikator kaldes en hash. Nu vises den seneste commit:

Den seneste commit

Her er dens hash:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Bemærk

Du vil have en anden hash for denne commit af den grund, der forklares nedenfor.

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 parent commit-hashen ikke.

Da al denne commit-information bruges til at beregne dens 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 betyder det, at hvis noget ændres i committet, vil dens hash også ændre sig. 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, hvilket commit der skal tilbagerulles, kan du se de fire seneste commits:

De fire seneste commits

Der er et commit, hvor filen recipe.txt blev tilføjet. Reverter dette commit for at oprette et nyt, der fortryder disse ændringer og effektivt sletter filen. I dette eksempel er commit-hashen:

043b634d76a7a7744757350512b6367417c29e0

Din commit-hash vil være anderledes. Nu skal du revertere dette commit:

Erstat denne hash med din egen hash.

Git revert

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

Standard tilbagerulnings-commit-besked

Luk derefter teksteditoren korrekt, og vis de ændringer, der blev foretaget i det seneste commit:

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:

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:

Click or drag`n`drop items and fill in the blanks

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 5
some-alt