Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Tilbakeføring av en Spesifikk Commit | Angre endringer
Git-Essensielt

Tilbakeføring av en Spesifikk Commit

Sveip for å vise menyen

git revert

For å tilbakestille en spesifikk commit, bruk kommandoen git revert. Denne kommandoen oppretter en ny commit som reverserer endringene introdusert av den angitte commiten. Grunnleggende syntaks:

git revert <commit-hash>

I stedet for å bruke HEAD (som peker på den siste commiten), spesifiser hashen til commiten (commit ID) du ønsker å tilbakestille ved å erstatte <commit-hash> med den faktiske hash-verdien.

Mer om hasher

Hver commit har en unik ID — en 40-tegns heksadesimal streng bestående av sifre (0–9) og bokstaver (a–f). Denne identifikatoren kalles en hash. Se nå på den siste commiten:

git log -n 1
Den siste commiten

Her er dens hash:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Merk

Du vil ha en annen hash for denne commiten av grunnen som forklares nedenfor.

Commit-hashen beregnes ved hjelp av SHA-1-algoritmen basert på følgende informasjon:

  • Commit-melding;
  • Dato;
  • Forfatter;
  • Snapshot av arbeidsområdet;
  • Hash for foreldre-commit (eller commits når det er mer enn én forelder).

Hvis commiten er den første i depotet, blir hash for foreldre-commit åpenbart ikke beregnet.

Beregning av hash

Siden all denne commit-informasjonen brukes til å beregne hashen, sikrer bruk av hasher som commit-IDer konsistensen i depotet. I tillegg er sannsynligheten for at to forskjellige commits får samme hash (sannsynligheten for kollisjon) ekstremt lav, så det er svært usannsynlig at det skjer ved en tilfeldighet.

I hovedsak vil hashen endre seg hvis noe endres i commiten. Dette betyr at hvis dataene blir korrupte av en eller annen grunn, kan Git bruke hashen til å identifisere dette.

Note
Merk

Når en commit endres, endres commit-IDen, og derfor er det bedre å unngå å bruke kommandoen git commit --amend når du arbeider med eksterne depot.

Eksempel på arbeidsflyt

Før du bestemmer hvilken commit som skal tilbakestilles, vis de fire siste commitene:

git log -n 4
De fire siste commitene

Det finnes en commit hvor filen recipe.txt ble lagt til. Tilbakestill denne committen for å opprette en ny commit som opphever disse endringene og effektivt sletter filen. I dette eksemplet er commit-hashen:

043b634d76a7a7744757350512b6367417c29e0

Din commit-hash vil være annerledes. Nå skal du tilbakestille denne committen:

git revert 043b634d76a7aa7744757350512bb3b7417c29e0

Bytt ut denne hashen med din hash.

Git revert

Igjen åpnes standard tekstredigerer med standard commit-melding for tilbakestillingen. La meldingen stå uendret.

Standard melding for tilbakestilt commit

Lukk deretter teksteditoren riktig og vis endringene som er gjort i den siste commit-en:

git show HEAD
Den siste commit-en

7 slettinger har skjedd, noe som betyr at alle de syv linjene i filen ble fjernet. Bekreft nå at selve filen ble slettet ved å liste opp alle ikke-skjulte filer og kataloger i prosjektmappen:

ls -l
Lister filer og kataloger

Filen recipe.txt har blitt slettet.

question-icon

Koble handlingene til de respektive kommandoene.


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:

Klikk eller dra`n`slipp elementer og fyll inn de tomme feltene

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 5

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Seksjon 3. Kapittel 5
some-alt