Ako môžem vrátiť všetky lokálne zmeny v projekte spravovanom systémom Git do predchádzajúceho stavu?
Mám projekt, v ktorom som spustil git init
.
Po niekoľkých revíziách som urobil git status
, ktorý mi povedal, že všetko je aktuálne a že neboli žiadne lokálne zmeny.
Potom som urobil niekoľko po sebe idúcich zmien a uvedomil som si, že chcem všetko zahodiť a vrátiť sa do pôvodného stavu. Urobí to za mňa tento príkaz?
git reset --hard HEAD
1816
3
Ak chcete vrátiť zmeny vykonané v pracovnej kópii, urobte toto:
Ak chcete vrátiť zmeny vykonané v indexe (t. j. tie, ktoré ste pridali), urobte toto. Varning this will reset all of your unpushed commits to master!:
Ak chcete vrátiť zmenu, ktorú ste odovzdali, urobte toto:
Ak chcete odstrániť nesledované súbory (napr. nové súbory, vygenerované súbory):
Alebo nesledované adresáre (napr. nové alebo automaticky generované adresáre):
Poznámka: Možno budete chcieť spustiť aj
ako
neodstráni nesledované súbory, zatiaľ čo git-clean odstráni všetky súbory zo sledovaného koreňového adresára, ktoré nie sú pod sledovaním git. UPOZORNENIE - BUĎTE OPATRNÍ! Je užitočné najprv spustiť skúšobnú prevádzku s programom git-clean, aby ste zistili, čo odstráni.
Je to užitočné najmä vtedy, keď sa zobrazí chybové hlásenie
K čomu môže dôjsť pri viacerých činnostiach, jednou z nich je aktualizácia pracovnej kópie, keď ste vy aj váš priateľ pridali nový súbor s rovnakým názvom, ale on'ho odovzdal do kontroly zdrojov ako prvý a vy sa nestaráte o to, aby ste vymazali svoju nesledovanú kópiu.
V takejto situácii vám vykonanie suchého spustenia pomôže zobraziť aj zoznam súborov, ktoré by sa prepísali.
Pozrite sa na git-reflog. Vypíše všetky stavy, ktoré si pamätá (predvolene 30 dní), a vy si môžete jednoducho vybrať ten, ktorý chcete. Napríklad: