Kvôli zlému vyberaniu cherry-picking je môj lokálny repozitár Git momentálne o päť revízií pred originom a nie je v dobrom stave. Chcem sa zbaviť všetkých týchto revízií a začať odznova.
Zrejme by to stačilo vymazať môj pracovný adresár a znovu ho naklonovať, ale opätovné sťahovanie všetkého z GitHubu sa mi zdá ako prehnané a nie je to dobré využitie môjho času.
Možno je git revert
to, čo potrebujem, ale nechcem skončiť 10 revízií pred pôvodným kódom (alebo dokonca šesť), aj keď to vráti samotný kód do správneho stavu. Chcem len predstierať, že posledná polhodina sa nikdy nestala.
Existuje nejaký jednoduchý príkaz, ktorý to urobí? Zdá sa to ako zrejmý prípad použitia, ale nenachádzam na to žiadne príklady.
Všimnite si, že táto otázka sa týka konkrétne odkazov, nie:
Ak sú vaše nadbytočné revízie viditeľné len pre vás, môžete jednoducho urobiť
git reset --hard origin/<branch_name>
aby ste sa presunuli späť na miesto, kde sa nachádza origin. Tým sa stav repozitára obnoví na predchádzajúcu revíziu a všetky miestne zmeny sa zrušia.
Vykonaním príkazu git revert
sa nové revízie odstránia zo starých revízií spôsobom, ktorý udrží históriu všetkých'pri zmysloch.
Skúste:
git reset --hard <the sha1 hash>
aby ste obnovili svoju hlavu tam, kde chcete byť. Pomocou gitk zistíte, v ktorej revízii chcete byť. Reset môžete vykonať aj v rámci gitk.