Som mjukvaruingenjör eller webbutvecklare kan vi behöva pusha många commits till vårt Git-förråd.
Det finns dock några andra fall där vi vill commitera filerna som inte kommer att skickas till vårt Git-förråd. Innan vi utfärdar något åtagande kan vi ibland vilja implementera några ytterligare ändringar.
Som en effekt måste vi ångra den senaste commit genom vårt Git-förråd. Vi kommer att se hur vi kan ångra den sista commit i detta ämne.
Ångra Last Git Commit tillsammans med en återställning
Vi kan enkelt ångra den sista git commit genom att utföra kommandot, dvs. 'git reset' tillsammans med ett alternativ, dvs. '-mjuk' som kommer att skydda alla ändringar som görs i våra filer. Vi måste beskriva åtagandet att ångra som är 'HEAD~1'.
Den sista commit av git kommer att raderas från vårt Git-förråd.
$ git reset --soft HEAD~1
I denna notation,
'HEAD~1': Det betyder att vi vill återställa detta HEAD till en enda commit innan loggens historia.
år datorn uppfanns
$ git log --oneline 3fad532 Last commit (HEAD) 3bnaj03 Commit before HEAD (HEAD~1) Vcn3ed5 Two commits before HEAD (HEAD~2)
Vad blir effekten av kommandot ovan?
Kommandot, dvs. 'git reset' kan ses som ett kommando, det vill säga motsatsen till 'git add' , i huvudsak att infoga filer i Git-indexet.
Om du beskriver alternativet för '-mjuk' , Git kommer inte att ändra filerna i indexet eller den körande katalogen alls.
Till exempel har vi inkluderat två filer i vår senaste commit, även om vi vill implementera några ändringar i den här filen.
$ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 Second commit *7083e29 Initial repository commit
Som ett resultat kommer vi att ansöka 'git reset' tillsammans med möjligheten att '-mjuk' att ångra den senaste commit och även implementera några ytterligare ändringar.
$ git reset --soft HEAD~1 $ git status
Över grenmästaren
Vår filial är master/origin ahead genom commit 1 (använd 'git push' för att publicera våra lokala commits).
c# lista
Ändringar som ska genomföras:
(apply 'git restore --staged …' to unstage)
ny fil: fil1
$ git log --oneline --graph *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit
Som vi kan se finns filen fortfarande i indexet genom att ångra den senaste commit (ändringar som ska begås) även om commit raderades.
Vi har gjort den sista commit på vårt arkiv framgångsrikt.
Hård återställ Git commit
Vi kan överväga i avsnittet ovan att vi enkelt kan ångra den senaste commit och bevara ändringarna gjort till vilken fil som helst i indexet. Men i vissa situationer vill vi helt enkelt ta bort ändringarna och åtaganden som gjorts för alla filer.
Det är ett mål för ett alternativ, dvs. '-hård' .
fötter vs fot
För att ångra den senaste commit och ta bort alla ändringar i indexet och katalogen, kör ett kommando, dvs. 'git reset' tillsammans med alternativet, dvs. '-hård' och beskriv en commit före kommandot HEAD ('HEAD~1') .
$ git reset --hard HEAD~1
Varje commit och modifiering kommer att tas bort från indexet och katalogen efter att ha använt '--hård' kommando. Så vi bör vara försiktiga.
Till exempel har vi lagt alla nya filer med namnet 'file1' till vårt Git-förråd.
$ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit
Antag nu att vi vill ångra den senaste commit och ta bort varje ändring.
$ git reset --hard HEAD~1
Nu är HEAD på 90f8bb1 Second commit
Låt oss nu kolla vårt git-förrådstillstånd.
$ git status
Över grenmästaren
Vår gren är modern med master/origin (använd 'git push'-kommandot för att publicera våra lokala commits).
string.valueof
Nu finns det inget att begå, och arbetsträdet är rent.
Mixed Reset Git commit
Behåll ändringen i vår arbetskatalog, dock INTE i indexet. Vi måste tillämpa kommandot, dvs ., 'git reset' tillsammans med alternativet, dvs. '-blandad' . Efter detta kommando måste vi lägga till 'HEAD~1' helt enkelt till den sista commit.
$ git reset --mixed HEAD~1
Till exempel har vi inkluderat alla filer med namnet 'file1' i alla commit som vi måste ångra.
$ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit
Helt enkelt kör vi kommandot, dvs. 'git reset' tillsammans med alternativet, dvs. '-blandad' för att ångra den senaste commit.
Som ett resultat av detta '-blandad' kommandot är a 'blanda' bland hård och mjuk återställning, så dess namn.
Över grenmästaren
Vår filial är master/origin ahead genom commit 1 (använd 'git push' för att publicera våra lokala commits).
Ospårade filer: (använd 'git add ...' för att lägga till i det som kommer att begå)
file1
Inget ingår för commit men de ospårade filerna finns (använd 'git track' för spårning).
Så vi har upptäckt en annan praxis för att återställa den senaste commit genom att bevara ändringar som gjorts i filerna.
Ångra Last Commit tillsammans med återställ
Använd kommandot, dvs. 'git återgå' och beskriv ett åtagande som ska återkallas, dvs. 'HUVUD' till historiens commit för att återställa den senaste Git-commiten.
$ git revert HEAD
Kommandot 'git revert' är annorlunda jämfört med kommandot 'git reset' eftersom det kan spela in vilken ny commit som helst tillsammans med några modifieringar som definieras genom att degenerera den senaste commit.
Vi kan beskriva 'HEAD~1' med kommandot 'git reset' eftersom detta återställningskommando kommer att ställa in vilken ny HEAD-plats som helst samtidigt som den beskrivna commit degenereras.
Som ett resultat kommer vi att befästa ändringarna igen i vissa filer för att återställas och förbinda oss att inte utföras. Vi har skapat vilken ny fil som helst för vårt arkiv av Git men vi vill degenerera denna commit.
ram skådespelare
$ git log --oneline -graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit
Om du kör kommandot 'git revert' kommer Git att öppna vår textredigerare för att utföra ändringarna automatiskt.
Ett nytt meddelande visas tillsammans med en ny commit-hash när vi är klara med att köra ett commit-meddelande.
[master 2d40a2c] Revert 'Added a new file named as file1' 1 file changed, 1 deletion(-) delete mode 100644 file1
Om vi måste kontrollera vår Git-historik igen, kan vi märka att en ny commit lagts till för att ångra den senaste commit genom vårt arkiv.
$ git log --oneline --graph *2d40a2c (HEAD -> master) Revert 'Added a new file named file1' *1fa26e9 Added a new file named as file1 *ee8b133 Second commit *a3bdedf Initial commit