Tilbakefø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:
Her er dens hash:
1b00736255dca7d78659a9971d0c30fba0eb3075
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.
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:
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.
Standard tekstredigerer åpnes igjen med standard meldingen for tilbakestilling. La meldingen stå uendret.
Lukk deretter teksteditoren på riktig måte og vis endringene som ble gjort i 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:
Filen recipe.txt har blitt slettet.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
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
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 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:
Her er dens hash:
1b00736255dca7d78659a9971d0c30fba0eb3075
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.
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:
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.
Standard tekstredigerer åpnes igjen med standard meldingen for tilbakestilling. La meldingen stå uendret.
Lukk deretter teksteditoren på riktig måte og vis endringene som ble gjort i 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:
Filen recipe.txt har blitt slettet.
Takk for tilbakemeldingene dine!