17. Odebrání revize z větve

Cíle

  • Naučit se mazat nejnovější revize pobočky

Revert je výkonný příkaz z předchozí části, který umožňuje zrušit všechny závazky do úložiště. Původní i zrušené závazky se však v historii zobrazují pobočky (při použití příkazu git log).

Často poté, co již došlo ke spáchání, si uvědomíme, že to byla chyba. Bylo by hezké mít příkaz Zpět, který umožňuje okamžité smazání nesprávných potvrzení. Tento příkaz zabrání výskytu jednoho nebo více nechtěných potvrzení v historii git log.

01 Příkaz reset

Příkaz reset jsme již použili k vyrovnání nárazníkové zóny a vybraného potvrzení (v předchozí lekci byl použit příkaz HEAD).

Když je uveden odkaz na potvrzení (tj. větev, hash nebo název značky), reset

  1. Přepíše aktuální větev, takže bude ukazovat na správné potvrzení
  2. Volitelně resetuje vyrovnávací zónu, aby vyhovovala zadanému potvrzení
  3. Volitelně můžete resetovat pracovní adresář, aby odpovídal zadanému potvrzení

02 Zkontrolovat naši historii

Pojďme si rychle prohlédnout naši historii potvrzení .

Spustit:

git hist

Výsledek:

Vidíme, že poslední dva závazky v této větvi jsou „Jejda“ „a“ Vrátit Jejda „. Odstraňte je pomocí příkazu reset.

03 Nejprve označte tuto větev

Označte poslední potvrzení pomocí tag, so you can find it after removing a commit(s).

Spustit:

git tag oops

04 Resetovat potvrzení na předchozí Jejda

V výše v protokolu historie je potvrzení „v1“ označeno před potvrzeními „Jejda“ a „Vrátit Jejda“. Obnovme větev do tohoto bodu. Protože pobočka má značku, můžeme v příkazu reset použít název značky (pokud značku nemá, můžeme použít hodnotu hash).

Spustit:

git reset --hard v1git hist

Výsledek:

Naše hlavní větev ukazuje na odevzdání v1 a revize Oops a Oops již v této větvi neexistují. Díky parametru --hard je v pracovním adresáři reflektována nová hlavička větve.

05 Nikdy nic není ztraceno

Co se stalo se špatnými spácháními? Stále jsou v úložišti. Ve skutečnosti se na ně můžeme stále odvolávat. Na začátku lekce jsme vytvořili značku „oops“ pro zrušené potvrzení. Podívejme se na všechny závazky.

Spustit:

git hist --all

Výsledek:

Vidíme, že špatné závazky nezmizí. Už nejsou uvedeny v hlavní větvi, ale stále zůstávají v úložišti. Stále by byli v úložišti, kdybychom je neoznačili, ale pak bychom je mohli odkazovat pouze podle jejich hash jmen. Neodkazované závazky zůstanou v úložišti, dokud systém nespustí software pro odstraňování odpadků.

06 Resetovat nebezpečí

Resetování na místních pobočkách je obvykle neškodné. Důsledky jakékoli „nehody“ lze vrátit pomocí správného potvrzení.

Ostatní uživatelé, kteří sdílejí větev, však mohou být zmateni, pokud je větev sdílena na vzdálených úložištích.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *