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

Återställa en Specifik Commit

Svep för att visa menyn

git revert

För att återställa en specifik commit, använd kommandot git revert. Detta kommando skapar en ny commit som återställer ändringarna som infördes av den angivna commiten. Grundläggande syntax:

git revert <commit-hash>

Istället för att använda HEAD (som riktar sig mot den senaste commiten), ange hashen för den commit (commit-ID) du vill återställa genom att ersätta <commit-hash> med det faktiska hashvärdet.

Mer om hashar

Varje commit har ett unikt ID — en 40-teckens hexadecimalt sträng bestående av siffror (0–9) och bokstäver (a–f). Denna identifierare kallas en hash. Visa nu den senaste commiten:

git log -n 1
Den senaste commiten

Här är dess hash:

1b00736255dca7d78659a9971d0c30fba0eb3075

Note
Notera

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

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

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

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

Beräkning av hash

Eftersom all denna commit-information används för att beräkna dess hash, säkerställer användningen av hashvärden som commit-ID:n konsekvensen i arkivet. Dessutom är sannolikheten för att två olika commits får 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
Notering

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ärrarkiv.

Exempelarbetsflöde

Innan du bestämmer vilken commit som ska återställas, visa de fyra senaste commitarna:

git log -n 4
Fyra senaste commitar

Det finns en commit där filen recipe.txt lades till. Återställ denna commit för att skapa en ny commit som tar bort dessa ändringar och effektivt raderar filen. I detta exempel är commit-hashen:

043b634d76a7a7744757350512b6367417c29e0

Din commit-hash kommer att vara annorlunda. Nu återställ denna commit:

git revert 043b634d76a7aa7744757350512bb3b7417c29e0

Ersätt denna hash med din hash.

Git revert

Återigen öppnas standardtextredigeraren med standardmeddelandet för commit för återställningen. Lämna meddelandet oförändrat.

Standardmeddelande för återställning av commit

Stäng sedan textredigeraren korrekt och visa ändringarna som gjorts i den senaste committen:

git show HEAD
Den senaste committen

7 borttagningar har skett, vilket innebär att alla sju rader i filen togs bort. Verifiera nu att själva filen har tagits bort genom att lista alla icke-dolda filer och kataloger i projektkatalogen:

ls -l
Lista filer och kataloger

Filen recipe.txt har tagits bort.

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:

Klicka eller dra`n`släpp objekt och fyll i luckorna

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

Avsnitt 3. Kapitel 5
some-alt