Om du är webbutvecklare eller programvarutekniker är det mycket troligt att du driver en hel del åtaganden till din Git förvar varje dag.
I vissa fall har du dock begått några filer som inte ska tryckas till ditt Git-arkiv.
Ibland kanske du vill utföra ytterligare ändringar innan du utfärdar åtagandet .
Som en konsekvens måste du ångra det senaste engagemanget från ditt Git-arkiv.
I den här handledningen kommer vi att se hur du enkelt kan ångra det senaste engagemanget, kanske för att begå ändringar senare.
Innehållsförteckning
Ångra Last Git Commit med återställning
Det enklaste sättet att ångra det senaste Git-åtagandet är att utföra kommandot ”git reset” med alternativet ”–soft” som kommer att bevara ändringar gjorda i dina filer. Du måste ange åtagandet att ångra som är ”HEAD ~ 1” i detta fall.
Det senaste åtagandet tas bort från din Git-historik.
Om du inte är bekant med denna notation betyder ”HEAD ~ 1” att du vill återställa HEAD (den senaste commit) till en commit tidigare i logghistoriken.
Så vad är effekten av det här kommandot?
Kommandot ”git reset” kan ses som motsatsen till kommandot ”git add”, i huvudsak lägga till filer till Git-indexet.
När du anger alternativet ”–soft”, instrueras Git att inte ändra filerna i arbetskatalogen eller i indexet alls.
Som ett exempel , låt oss säga att du har lagt till två filer i ditt senaste engagemang men att du vill utföra några ändringar på den här filen.
Som en konsekvens kommer du att använda ”git reset” med alternativet ”–soft”. för att ångra det senaste åtagandet och utföra ytterligare ändringar.
Som du kan se, genom att ångra det senaste åtagandet, filen finns fortfarande i indexet (ändringar som ska göras) men åtagandet togs bort.
Fantastiskt, du har ångrat det senaste Git-åtagandet i ditt förråd.
Hård Återställ Git-åtagande
I föregående avsnitt har vi sett hur du enkelt kan ångra det senaste åtagandet genom att bevara ändringarna som gjorts i filerna i indexet.
I vissa fall vill du helt enkelt bli av med engagemanget och de ändringar som gjorts i filerna.
Detta är syftet med alternativet ”–hårdt”.
För att ångra det senaste engagemanget och kassera alla ändringar. i arbetskatalogen och indexet, kör kommandot ”git reset” med alternativet ”–hard” och ange engagemanget före HEAD (”HEAD ~ 1”).
Var försiktig när du använder ”–hard”: ändringar kommer att tas bort från arbetskatalogen och från indexet, du kommer att förlora alla ändringar.
Tillbaka till exemplet vi har detaljerat tidigare, låt oss säga att du har gjort en ny fil till ditt Git-arkiv med namnet ”file1”.
Låt oss nu låtsas att du vill ångra det senaste åtagandet och kassera alla ändringar.
Bra, låt oss nu se tillståndet i vårt Git-förvar .
Som du kan se tog filen bort från Git-arkivet (index + arbetskatalog)
Mixed reset Git commit
För att ångra det senaste Git-engagemanget, behåll ändringarna i arbetskatalogen men INTE i indexet, du måste använda kommandot ”git reset” med alternativet ”–mixed”. Bredvid det här kommandot, lägg bara till ”HEAD ~ 1” för det senaste åtagandet.
Som ett exempel, låt oss säga att vi har lagt till en fil med namnet ” file1 ”i ett engagemang som vi måste ångra.
För att ångra det senaste engagemanget kör vi helt enkelt kommandot” git reset ”med alternativet” –mixed ”.
När du anger alternativet” –blandat ”tas filen bort från Git-indexet men inte från arbetskatalogen.
Som en följd blir” –mixed ”Är en” blandning ”mellan den mjuka och hårda återställningen, därav dess namn.
Bra! Du hittade ett annat sätt att återställa det senaste engagemanget medan du behåller ändringar som gjorts i filer.
I nästa avsnitt kommer vi att se ett annat sätt att återställa det senaste åtagandet med kommandot git revert.
Ångra senaste åtagande med återställa
För att återställa det senaste Git-åtagandet , använd ”git revert” och ange det engagemang som ska återställas som är ”HEAD” för det senaste engagemanget i din historia.
Kommandot ”git revert” skiljer sig något från kommandot ”git reset” eftersom det kommer att spela in ett nytt engagemang med ändringarna som infördes genom att återställa det senaste engagemanget.
Observera också att med ”git reset ”du angav” HEAD ~ 1 ”eftersom återställningskommandot ställer in en ny HEAD-position medan återställning faktiskt återställer det angivna engagemanget.
Som en konsekvens måste du göra ändringarna igen för att filerna ska kunna återgår och att åtagandet ångras.
Som en konsekvens, låt oss säga att du har åtagit dig en ny fil till ditt Git-arkiv men du vill återställa detta åtagande.
När kommandot ”git revert” körs öppnar Git automatiskt din textredigerare för att göra ändringarna.
När du är klar med engagemangsmeddelandet visas ett meddelande med den nya kommandot hash.
Nu om du skulle inspektera din Git-historik igen, skulle du märka att ett nytt engagemang lades till för att ångra det senaste engagemanget från ditt arkiv.
Slutsats
I den här självstudien har du sett alla sätt att ångra det senaste engagemanget i ditt Git-arkiv.
Du har lärt dig om ”git reset ”-Kommandot och de olika sätten att köra det beroende på vad du vill behålla eller inte.
Du lärde dig också om skillnaden mellan git-återställning och git-återställningskommando, den senare lägger till ett nytt engagemang i ordning för att återställa den från ditt arkiv.
Om du är nyfiken på Git eller på mjukvaran eering, vi har ett komplett avsnitt tillägnad det på webbplatsen, så se till att kolla in det!
Om du gillar Git kanske du gillar våra andra artiklar:
- Hur man klonar ett Git-arkiv
- Hur man avinstallerar Git-filer
- Hur man kör Cherry Pick Git