Odstranjevanje lokalnih sprememb v sistemu Git
Zaradi slabega izbiranja je moj lokalni repozitorij Git trenutno pet sprememb pred izvornim in ni v dobrem stanju. Želim se znebiti vseh teh revizij in začeti znova.
Očitno bi to storil z brisanjem delovnega imenika in ponovnim kloniranjem, toda ponovno prenašanje vsega iz GitHuba se mi zdi pretirano in ni dobra poraba mojega časa.
Morda je git revert
tisto, kar potrebujem, vendar nočem končati z 10 spremembami pred izvorom (ali celo šestimi), tudi če se s tem koda vrne v pravo stanje. Želim se samo pretvarjati, da se zadnje pol ure sploh ni zgodilo.
Ali obstaja preprost ukaz, ki bo to naredil? Zdi se, da je to očiten primer uporabe, vendar ne najdem nobenega primera.
Upoštevajte, da se to vprašanje nanaša predvsem na obveze in ne na:
- datotekah brez sledenja
- nezaključenih spremembah
- postavljenih, vendar neoddanih spremembah
1286
3
Če so odvečne oddaje vidne samo vam, lahko preprosto naredite
git reset --hard origin/
da se premaknete nazaj na mesto izvora. To bo stanje skladišča povrnilo na prejšnjo oddajo in bo zavrglo vse lokalne spremembe.Če izvedete
git revert
, nove spremembe odstranijo stare spremembe na način, ki ohranja zdravo zgodovino vseh.Preprosto izbrišite svojo lokalno glavno vejo in jo ponovno ustvarite na naslednji način:
Poskusite:
da ponastavite svojo glavo tja, kjer želite biti. Uporabite gitk, da vidite, pri kateri reviziji želite biti. Ponastavitev lahko izvedete tudi v gitk.