logo

Ako vrátiť späť posledné odovzdanie

Ako softvérový inžinier alebo webový vývojár môžeme vyžadovať vloženie mnohých záväzkov do nášho úložiska Git.

Existujú však aj iné prípady, keď chceme odovzdať súbory, ktoré nebudú odoslané do nášho úložiska Git. Pred vydaním akéhokoľvek potvrdenia môžeme niekedy chcieť implementovať niektoré ďalšie zmeny.

V dôsledku toho požadujeme zrušiť posledné odovzdanie prostredníctvom nášho úložiska Git. Uvidíme, ako môžeme vrátiť späť posledné odovzdanie v tejto téme.

Zrušte posledný Git Commit spolu s resetom

Posledný príkaz git môžeme ľahko vrátiť späť vykonaním príkazu, t.j. 'git reset' spolu s opciou, t.j. '-mäkký' ktorá ochráni všetky zmeny vykonané v našich súboroch. Musíme opísať odovzdanie späť, ktoré je 'HEAD~1'.

Posledné odovzdanie git bude vymazané z nášho úložiska Git.

 $ git reset --soft HEAD~1 

V tomto zápise

'HEAD~1': Znamená to, že si želáme resetovať túto HEAD na jedno potvrdenie predtým, než sa v histórii denníka objaví.

dátum na reťazec
 $ git log --oneline 3fad532 Last commit (HEAD) 3bnaj03 Commit before HEAD (HEAD~1) Vcn3ed5 Two commits before HEAD (HEAD~2) 

Aký bude účinok vyššie uvedeného príkazu?

Príkaz, t.j. 'git reset' možno považovať za príkaz, t.j. opak príkazu 'git add' , v podstate vkladanie súborov do indexu Git.

Pri popise možnosti '-soft' , Git vôbec nezmení súbory v indexe alebo spúšťacom adresári.

Napríklad sme do nášho nedávneho odovzdania zahrnuli dva súbory, aj keď chceme do tohto súboru implementovať niektoré zmeny.

 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 Second commit *7083e29 Initial repository commit 

V dôsledku toho sa prihlásime 'git reset' spolu s možnosťou '-soft' zrušiť posledné odovzdanie a tiež implementovať niektoré ďalšie zmeny.

 $ git reset --soft HEAD~1 $ git status 

Nad pobočkovým majstrom

Naša pobočka je master/origin pred odovzdaním 1 (použite 'git push' na publikovanie našich lokálnych commitov).

prevod reťazca na int java

Úpravy, ktoré sa majú vykonať:

 (apply 'git restore --staged …' to unstage) 

nový súbor: súbor1

 $ git log --oneline --graph *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Ako môžeme vidieť, súbor je stále v indexe zrušením posledného odovzdania (úpravy, ktoré sa majú odovzdať), hoci odovzdanie bolo vymazané.

Úspešne sme vykonali posledné odovzdanie na našom úložisku.

Hard Reset Git commit

Vo vyššie uvedenej časti môžeme zvážiť, že môžeme ľahko zrušiť posledné potvrdenie a zachovať zmeny vykonané pre akýkoľvek súbor v indexe. V niektorých situáciách však jednoducho chceme odstrániť zmeny a potvrdenia vykonané v akomkoľvek súbore.

Ide o cieľ opcie, t.j. '-tvrdý' .

zmeniť pridať stĺpec Oracle

Ak chcete vrátiť späť posledné potvrdenie a odstrániť všetky úpravy v rámci indexu a adresára, vykonajte príkaz, t.j. 'git reset' spolu s opciou, t.j. '-tvrdý' a popíšte odovzdanie pred príkazom HEAD ('HEAD~1') .

 $ git reset --hard HEAD~1 

Každé potvrdenie a úprava sa po použití súboru odstráni z indexu a adresára '--tvrdý' príkaz. Mali by sme byť teda opatrní.

Napríklad sme odovzdali akýkoľvek nový súbor s názvom 'file1' do nášho úložiska Git.

 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Teraz predpokladajme, že chceme zrušiť posledné potvrdenie a odstrániť každú zmenu.

 $ git reset --hard HEAD~1 

Teraz je HEAD na 90f8bb1 Second commit

Teraz skontrolujme stav nášho úložiska git.

 $ git status 

Nad pobočkovým majstrom

Naša pobočka je súčasná s master/origin (aplikujte príkaz 'git push' na publikovanie našich lokálnych commitov).

líška vs vlk

Teraz nie je čo robiť a pracovný strom je čistý.

Zmiešaný reset Git commit

Úpravy ponechajte v našom pracovnom adresári, NIE však v indexe. Musíme použiť príkaz, t.j ., 'git reset' spolu s opciou, t.j. '-mixed' . Po tomto príkaze musíme jednoducho pripojiť 'HEAD~1' k poslednému odovzdaniu.

 $ git reset --mixed HEAD~1 

Napríklad sme zahrnuli akýkoľvek súbor s názvom 'file1' do akéhokoľvek odovzdania, ktoré požadujeme vrátiť späť.

 $ git log --oneline --graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Jednoducho vykonáme príkaz, tj. 'git reset' spolu s opciou, t.j. '-mixed' za zrušenie posledného odovzdania.

V dôsledku toho '-mixed' príkaz je a 'zmiešať' medzi tvrdým a mäkkým resetom, teda jeho názov.

Nad pobočkovým majstrom

Naša pobočka je master/origin pred odovzdaním 1 (použite 'git push' na publikovanie našich lokálnych commitov).

Nesledované súbory: (aplikujte 'git add …' na pridanie do toho, čo bude potvrdené)

 file1 

Nič zahrnuté na odovzdanie, ale nesledované súbory sú prítomné (na sledovanie použite 'git track').

Zistili sme teda ďalší postup na vrátenie posledného odovzdania zachovaním úprav vykonaných v súboroch.

Vrátiť späť posledný záväzok a vrátiť späť

Použite príkaz, tj. 'git revert' a opísať záväzok, ktorý sa má vrátiť, t.j. 'HEAD' na odovzdanie histórie na vrátenie posledného odovzdania Git.

 $ git revert HEAD 

Príkaz 'git revert' je odlišný v porovnaní s príkazom 'git reset', pretože môže zaznamenať akékoľvek nové odovzdanie spolu s niektorými úpravami definovanými degenerovaním posledného odovzdania.

Môžeme opísať 'HEAD~1' pomocou príkazu 'git reset', pretože tento príkaz reset nastaví akékoľvek nové miesto HEAD pri degenerácii opísaného odovzdania.

Výsledkom je, že zmeny znova potvrdíme niektorým súborom na vrátenie a zaviažeme sa, že nebudú vykonané. Odovzdali sme akýkoľvek nový súbor pre náš repozitár Git, ale chceme toto odovzdanie zdegenerovať.

int reťazec
 $ git log --oneline -graph *b734307 (HEAD -> master) Added a new file named 'file1' *90f8bb1 (Head -> master) Second commit *7083e29 Initial repository commit 

Ak vykonáte príkaz 'git revert', Git otvorí náš textový editor, aby automaticky vykonal úpravy.

Ako vrátiť späť posledné odovzdanie

Keď skončíme s vykonávaním správy odovzdania, zobrazí sa nová správa spolu s novým hashom odovzdania.

 [master 2d40a2c] Revert 'Added a new file named as file1' 1 file changed, 1 deletion(-) delete mode 100644 file1 

Ak budeme musieť znova skontrolovať našu históriu Git, môžeme si všimnúť pridanie nového odovzdania, aby sme zrušili posledné odovzdanie prostredníctvom nášho úložiska.

 $ git log --oneline --graph *2d40a2c (HEAD -> master) Revert 'Added a new file named file1' *1fa26e9 Added a new file named as file1 *ee8b133 Second commit *a3bdedf Initial commit