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

bookTilbakeføring av en Spesifikk Commit

git revert

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

git revert <commit-hash>

I stedet for å bruke HEAD (som peker på den siste commit-en), spesifiser hashen til commit-en (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. Nå kan du vise den siste commit-en:

Den siste commit-en

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.

Siden all denne informasjonen om commit brukes til å beregne dens hash, 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 betyr dette at hvis noe endres i commiten, vil også hashen endres. Dette innebærer at dersom dataene blir korrupte av en eller annen grunn, kan Git bruke hashen til å identifisere dette.

Note
Merk

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

Eksempel på arbeidsflyt

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

De fire siste commitene

Det finnes en commit der filen recipe.txt ble lagt til. Reverter denne commiten for å opprette en ny commit som opphever disse endringene og dermed sletter filen. I dette eksempelet er commit-hashen:

043b634d76a7a7744757350512b6367417c29e0

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

Bytt ut denne hashen med din egen hash.

Git revert

Standard tekstredigerer åpnes igjen med standard meldingen for tilbakestilling. La meldingen stå uendret.

Standard tilbakestillingsmelding for commit

Lukk deretter teksteditoren på riktig måte og vis endringene som ble gjort i den siste commit-en:

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:

Viser 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:

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

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

Awesome!

Completion rate improved to 3.57

bookTilbakefø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 commit-en. Grunnleggende syntaks:

git revert <commit-hash>

I stedet for å bruke HEAD (som peker på den siste commit-en), spesifiser hashen til commit-en (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. Nå kan du vise den siste commit-en:

Den siste commit-en

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.

Siden all denne informasjonen om commit brukes til å beregne dens hash, 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 betyr dette at hvis noe endres i commiten, vil også hashen endres. Dette innebærer at dersom dataene blir korrupte av en eller annen grunn, kan Git bruke hashen til å identifisere dette.

Note
Merk

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

Eksempel på arbeidsflyt

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

De fire siste commitene

Det finnes en commit der filen recipe.txt ble lagt til. Reverter denne commiten for å opprette en ny commit som opphever disse endringene og dermed sletter filen. I dette eksempelet er commit-hashen:

043b634d76a7a7744757350512b6367417c29e0

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

Bytt ut denne hashen med din egen hash.

Git revert

Standard tekstredigerer åpnes igjen med standard meldingen for tilbakestilling. La meldingen stå uendret.

Standard tilbakestillingsmelding for commit

Lukk deretter teksteditoren på riktig måte og vis endringene som ble gjort i den siste commit-en:

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:

Viser 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:

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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 5
some-alt