17. Ta bort ett åtagande från en gren
Mål
- Att lära sig att ta bort grenens senaste åtaganden
Revert
är ett kraftfullt kommando i föregående avsnitt som låter dig avbryta eventuella åtaganden till förvaret, men både ursprungliga och avbrutna åtaganden ses i historiken av grenen (när du använder git log
-kommandot).
Ofta efter att ett engagemang redan har gjorts inser vi att det var ett misstag. Det skulle vara trevligt att ha en ångra kommando som gör att de felaktiga åtagandena kan tas bort omedelbart. Detta kommando skulle förhindra att en eller flera oönskade åtaganden visas i git log
-historiken.
01 Återställningskommandot
Vi har redan använt kommandot reset
för att matcha buffertzonen och det valda engagemanget (HEAD commit användes i föregående lektion).
När en referens ges (dvs. en filial, hash eller taggnamn), kommer reset
kommando kommer …
- Skriv över den aktuella grenen så att den pekar på rätt engagemang
- Valfritt återställ buffertzonen så att den följer det angivna engagemanget
- Valfritt återställ arbetskatalogen så att den matchar det angivna engagemanget
02 Kontrollera vår historik
Låt oss göra en snabb genomsökning av vår engagemangshistorik .
Kör:
git hist
Resultat:
Vi ser att de två sista åtagandena i denna gren är ”Oj ”och” Revert Oops ”. Låt oss ta bort dem med kommandot reset
.
03 Markera den här grenen först
Låt oss markera det senaste engagemanget med tag, so you can find it after removing a commit(s).
Kör:
git tag oops
04 Återställ åtagande till tidigare Oops
I historikloggen ovan, är kommittén taggad ”v1” innan ”Oops” och ”Revert Oops” åtar sig. Låt oss återställa filialen till den punkten. Eftersom filialen har en tagg kan vi använda taggnamnet i återställningskommandot (om det inte har en tagg kan vi använda hash-värdet).
Kör:
git reset --hard v1git hist
Resultat:
Vår huvudgren pekar på commit v1 och ”Revert Oops” och ”Oops” åtaganden finns inte längre i filialen. --hard
-parametern får arbetskatalogen till att spegla det nya filialhuvudet.
05 Ingenting går någonsin förlorat
Vad hände med fel åtaganden? De finns fortfarande i förvaret. Egentligen kan vi fortfarande hänvisa till dem. I början av lektionen skapade vi taggen ”oops” för det avbrutna engagemanget. Låt oss ta en titt på alla åtaganden.
Kör:
git hist --all
Resultat:
Vi kan se att fel åtaganden är inte borta. De listas inte längre i huvudgrenen men förblir fortfarande i förvaret. De skulle fortfarande finnas i förvaret om vi inte taggade dem, men då kunde vi bara referera till dem med deras hashnamn. Icke-refererade åtaganden förblir i förvaret tills programvaran för avfallshantering körs av systemet.
06 Återställ faror
Återställningar i lokala filialer är vanligtvis ofarliga. Konsekvenserna av varje ”olycka” kan återställas genom att använda rätt begå.
Andra användare som delar filialen kan dock förväxlas om filialen delas på fjärrförråd.