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 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:
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, hvis noe endres i commiten, vil også hashen endres. Dette betyr at dersom dataene skulle bli korrupte av en eller annen grunn, kan Git bruke hashen til å identifisere dette.
Når du endrer en commit, 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:
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 eksemplet 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.
Igjen åpnes standard tekstredigerer med standard meldingen for tilbakeføring. 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
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
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:
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, hvis noe endres i commiten, vil også hashen endres. Dette betyr at dersom dataene skulle bli korrupte av en eller annen grunn, kan Git bruke hashen til å identifisere dette.
Når du endrer en commit, 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:
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 eksemplet 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.
Igjen åpnes standard tekstredigerer med standard meldingen for tilbakeføring. 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!