Nastavenie testovacieho úložiska Git:
V tejto časti sa chystám naklonovať jedno zo svojich úložísk GitHub na svojom počítači a vytvoriť testovacie úložisko pre tento článok. Ak chcete nasledovať, môžete tak urobiť tiež. Ak máte svoje vlastné úložisko Git, s ktorým môžete pracovať, tak super! Môžete to tiež použiť.
Ak chcete naklonovať jedno z mojich úložísk GitHub (https: // github.com / dev-shovon / my-project), spustite nasledujúci príkaz:
$ git klon https: // github.com / dev-shovon / my-project undo_commit_demo
Repozitár GitHub by mal byť klonovaný do undo_commit_demo / adresár.
Teraz prejdite na ikonu undo_commit_demo / adresár takto:
Záväzok, ktorý chcete vrátiť, môže byť v inej vetve ako ja. Chcem vrátiť späť posledné spáchanie tj-opraviť pobočka. Takže musím vetvu potiahnuť tj-opraviť z môjho úložiska GitHub.
Môžete vytiahnuť tj-opraviť pobočka z GitHub nasledovne:
$ git pull origin ie-fixPOZNÁMKA: Tu, tj-opraviť je názov pobočky.
The tj-opraviť vetva by mala byť potiahnutá.
Teraz, pokladňa na pobočke (v mojom prípade, tj-opraviť) z ktorého chcete vrátiť posledný vykonaný príkaz nasledovne:
$ git checkout ie-fix
Ako vidíte, posledné spáchanie tj-opraviť pobočka je aec00f3. V ďalších častiach vám ukážem spôsoby, ako vrátiť späť posledné potvrdenie vo vašom úložisku Git.
Vrátiť späť posledné potvrdenie a ponechať zmeny:
Jedným zo spôsobov, ako vrátiť späť posledné potvrdenie, je mäkký reset použitia vo vašom úložisku Git. Čo to urobí, je to, že posledné potvrdenie sa odstráni a zmeny, ktoré ste v ňom vykonali, sa pridajú do pracovnej oblasti vášho úložiska Git. Týmto spôsobom, ak chcete niečo opraviť, môžete súbory upravovať a pridať nové potvrdenie.
Ako vidíte, posledný záväzok v mojom tj-opraviť pobočka je aec00f3.
$ git log - online
Moja pracovná oblasť je tiež čistá.
stav $ git
Ak chcete teraz odobrať alebo vrátiť späť posledné potvrdenie, spustite nasledujúci príkaz:
$ git reset --soft HEAD ~ 1
Ako vidíte, potvrdenie aec00f3 je preč.
$ git log - online
Aj súbor, ktorý som upravil pri poslednom potvrdení, je v mojej pracovnej oblasti.
stav $ git
Teraz môžete súbory ďalej upravovať, opraviť chyby, ktoré ste urobili, a vykonať zmeny znova.
Vrátiť späť posledné potvrdenie a odstrániť zmeny:
Ak je vám posledný záväzok, ktorý chcete odstrániť, k ničomu, môžete vo svojom úložisku Git zvážiť úplný reset. Tvrdý reset je taký, že odstráni posledný záväzok ako predtým. Ale tiež odstráni všetky zmeny, ktoré ste vykonali pri poslednom potvrdení. Tvrdý reset vykonajte, iba ak ste si istí, že už nepotrebujete nič z posledného potvrdenia.
Idem vytiahnuť tj-opraviť vetvu z môjho úložiska GitHub, aby som obnovil posledné potvrdenie aec00f3 a znova ju odstráňte v tejto časti.
$ git pull origin ie-fix
Ako vidíte, posledné odovzdanie je späť. Ak je vaše úložisko Git nahrané do cloudovej služby Git, napríklad GitHub, môžete tiež omylom obnoviť všetky odstránené potvrdenia.
Ako vidíte, moja pracovná oblasť je čistá.
stav $ git
Teraz, aby ste odstránili posledné potvrdenie a odstránili zmeny v tomto potvrdení, spustite nasledujúci príkaz:
$ git reset --hard HEAD ~ 1
Posledné potvrdenie by malo byť odstránené a HLAVA ukazovateľ by sa mal aktualizovať.
Ako vidíte, potvrdenie aec00f3 je odstránený a potvrdenie bezprostredne pred tým (3fffdee) je aktuálny posledný príkaz.
$ git log - online
Čistá je aj oddychová oblasť. Takže súbory zmien z odstráneného potvrdenia existujú.
stav $ git
Aktualizácia vzdialeného úložiska Git:
Teraz, keď ste úspešne odstránili chybné potvrdenie zo svojho úložiska Git, možno budete chcieť aktualizovať aj svoje úložisko GitHub. Toto je téma tejto časti.
Ako môžeš vidieť, stav git tiež ukazuje, že som 1 potvrdiť zo vzdialeného úložiska.
Predtým, ako som aktualizoval svoje úložisko GitHub, potvrdenie aec00f3 existuje, aj keď som ho odstránil z miestneho úložiska Git, ako vidíte.
Ak chcete synchronizovať lokálne úložisko Git s úložiskom GitHub, spustite nasledujúci príkaz:
$ git push --force origin ie-fixZmeny miestneho úložiska Git by sa mali synchronizovať s úložiskom GitHub.
Repozitár GitHub by sa mal aktualizovať. Ako vidíte, potvrdenie aec00f3 už nie je uvedený. K spáchaniu bezprostredne predtým aec00f3, ktorý je 3fffdee je teraz posledným spáchaním.
Takto teda vrátite posledný záväzok v Gite. Ďakujeme, že ste si prečítali tento článok.