Tilbagefø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:
Her er dens hash:
1b00736255dca7d78659a9971d0c30fba0eb3075
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.
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:
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.
Endnu en gang åbnes standardteksteditoren med standard commit-besked for tilbagerulningen. Lad beskeden forblive uændret.
Luk derefter teksteditoren korrekt, og vis de ændringer, der blev foretaget i 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:
Filen recipe.txt er blevet slettet med succes.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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
Tilbagefø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:
Her er dens hash:
1b00736255dca7d78659a9971d0c30fba0eb3075
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.
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:
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.
Endnu en gang åbnes standardteksteditoren med standard commit-besked for tilbagerulningen. Lad beskeden forblive uændret.
Luk derefter teksteditoren korrekt, og vis de ændringer, der blev foretaget i 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:
Filen recipe.txt er blevet slettet med succes.
Tak for dine kommentarer!