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 …

  1. Skriv över den aktuella grenen så att den pekar på rätt engagemang
  2. Valfritt återställ buffertzonen så att den följer det angivna engagemanget
  3. 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.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *