Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Återställa en Specifik Commit | Ångra Ändringar
Git-Grunder

bookÅterställa en Specifik Commit

git revert

Som vi redan har nämnt används kommandot git revert för att återställa en specifik commit. Detta kommando skapar en ny commit som upphäver ändringarna som infördes av den angivna commiten. Den grundläggande syntaxen är följande:

git revert <commit-hash>

Som du kan se, istället för att använda HEAD som vi gjorde för att återställa den senaste commiten, ska vi nu ange hashen för en specifik commit (commit-ID) som vi vill återställa (ersätt <commit-hash> med en giltig hash).

Mer om hashar

Kom ihåg att varje commit har ett unikt ID som i grunden är en sträng av siffror (0-9) och bokstäver (a-f), en hexadecimal sträng. Denna 40-tecken långa sträng kallas hash. Låt oss titta på vår senaste commit:

Här är dess hash:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Observera

Du kommer att ha en annan hash för denna commit av den anledning som förklaras nedan.

Commit-hashen beräknas med SHA-1-algoritmen baserat på följande information:

  • Commit-meddelande;
  • Datum;
  • Författare;
  • Snapshot av arbetskatalogen;
  • Hash för föregående commit (eller commits om det finns fler än en förälder).

Om commiten är den första i arkivet, beräknas uppenbarligen inte hash för föregående commit.

Eftersom all denna commit-information används för att beräkna dess hash, säkerställer användningen av hashar som commit-ID:n konsekvens i arkivet. Dessutom är sannolikheten för att två olika commits har samma hash (sannolikheten för kollision) extremt låg, så det är mycket osannolikt att det sker av en slump.

I princip, om något ändras i commiten, kommer dess hash också att ändras. Detta innebär att om data skulle bli korrupt av någon anledning, kan Git använda hashen för att identifiera detta.

Note
Observera

När en commit ändras, ändras commit-ID:t, vilket är anledningen till att det är bättre att inte använda kommandot git commit --amend när du arbetar med fjärrrepositoryn.

Exempelarbetsflöde

Innan vi bestämmer vilken commit vi ska återställa, låt oss titta på de fyra senaste commitarna:

Vi kan se att det finns en commit där vi lade till filen recipe.txt. Låt oss återställa denna commit genom att skapa en ny commit som tar bort dessa ändringar och i praktiken raderar filen. I mitt fall är dess hash följande:

043b634d76a7a7744757350512b6367417c29e0

Din hash för denna commit kommer dock att vara annorlunda. Vi kan nu återställa denna commit:

Ersätt denna hash med din hash.

Återigen öppnas standardtextredigeraren med standardmeddelandet för ångring. Vi låter det vara oförändrat.

Därefter stänger vi textredigeraren på lämpligt sätt och visar ändringarna som gjorts i denna senaste commit:

7 borttagningar har skett, vilket innebär att alla 7 rader i filen har tagits bort. Låt oss nu verifiera att själva filen har tagits bort genom att lista alla icke-dolda filer och kataloger i vår projektkatalog:

Vi har framgångsrikt tagit bort filen recipe.txt.

question-icon

Matcha åtgärderna med respektive kommandon.


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

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Awesome!

Completion rate improved to 3.57

bookÅterställa en Specifik Commit

Svep för att visa menyn

git revert

Som vi redan har nämnt används kommandot git revert för att återställa en specifik commit. Detta kommando skapar en ny commit som upphäver ändringarna som infördes av den angivna commiten. Den grundläggande syntaxen är följande:

git revert <commit-hash>

Som du kan se, istället för att använda HEAD som vi gjorde för att återställa den senaste commiten, ska vi nu ange hashen för en specifik commit (commit-ID) som vi vill återställa (ersätt <commit-hash> med en giltig hash).

Mer om hashar

Kom ihåg att varje commit har ett unikt ID som i grunden är en sträng av siffror (0-9) och bokstäver (a-f), en hexadecimal sträng. Denna 40-tecken långa sträng kallas hash. Låt oss titta på vår senaste commit:

Här är dess hash:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Observera

Du kommer att ha en annan hash för denna commit av den anledning som förklaras nedan.

Commit-hashen beräknas med SHA-1-algoritmen baserat på följande information:

  • Commit-meddelande;
  • Datum;
  • Författare;
  • Snapshot av arbetskatalogen;
  • Hash för föregående commit (eller commits om det finns fler än en förälder).

Om commiten är den första i arkivet, beräknas uppenbarligen inte hash för föregående commit.

Eftersom all denna commit-information används för att beräkna dess hash, säkerställer användningen av hashar som commit-ID:n konsekvens i arkivet. Dessutom är sannolikheten för att två olika commits har samma hash (sannolikheten för kollision) extremt låg, så det är mycket osannolikt att det sker av en slump.

I princip, om något ändras i commiten, kommer dess hash också att ändras. Detta innebär att om data skulle bli korrupt av någon anledning, kan Git använda hashen för att identifiera detta.

Note
Observera

När en commit ändras, ändras commit-ID:t, vilket är anledningen till att det är bättre att inte använda kommandot git commit --amend när du arbetar med fjärrrepositoryn.

Exempelarbetsflöde

Innan vi bestämmer vilken commit vi ska återställa, låt oss titta på de fyra senaste commitarna:

Vi kan se att det finns en commit där vi lade till filen recipe.txt. Låt oss återställa denna commit genom att skapa en ny commit som tar bort dessa ändringar och i praktiken raderar filen. I mitt fall är dess hash följande:

043b634d76a7a7744757350512b6367417c29e0

Din hash för denna commit kommer dock att vara annorlunda. Vi kan nu återställa denna commit:

Ersätt denna hash med din hash.

Återigen öppnas standardtextredigeraren med standardmeddelandet för ångring. Vi låter det vara oförändrat.

Därefter stänger vi textredigeraren på lämpligt sätt och visar ändringarna som gjorts i denna senaste commit:

7 borttagningar har skett, vilket innebär att alla 7 rader i filen har tagits bort. Låt oss nu verifiera att själva filen har tagits bort genom att lista alla icke-dolda filer och kataloger i vår projektkatalog:

Vi har framgångsrikt tagit bort filen recipe.txt.

question-icon

Matcha åtgärderna med respektive kommandon.


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

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5
some-alt