logo

Jak git vrátit zpět poslední potvrzení

Jako softwarový inženýr nebo webový vývojář můžeme vyžadovat vložení mnoha závazků do našeho úložiště Git.

Existují však některé další případy, kdy chceme odevzdat soubory, které nebudou odeslány do našeho úložiště Git. Před vydáním jakéhokoli potvrzení můžeme někdy chtít implementovat některé další změny.

V důsledku toho požadujeme zrušit poslední potvrzení prostřednictvím našeho úložiště Git. Uvidíme, jak můžeme vrátit zpět poslední commit v tomto tématu.

Zrušte poslední Git Commit spolu s resetem

Poslední git commit můžeme snadno vrátit zpět provedením příkazu, tj. 'git reset' spolu s opcí, tj. '-měkký' která ochrání všechny změny provedené v našich souborech. Musíme popsat odevzdání zpět, které je 'HEAD~1'.

Poslední odevzdání git bude smazáno z našeho úložiště Git.

 $ git reset --soft HEAD~1 

V tomto zápisu

'HEAD~1': To znamená, že si přejeme resetovat tuto HEAD na jeden odevzdání před v historii protokolu.

datum na řetězec
 $ git log --oneline 3fad532 Last commit (HEAD) 3bnaj03 Commit before HEAD (HEAD~1) Vcn3ed5 Two commits before HEAD (HEAD~2) 

Jaký bude účinek výše uvedeného příkazu?

Příkaz, tj. 'git reset' lze nahlížet jako příkaz, tedy opak příkazu 'git add' , v podstatě vkládání souborů do indexu Git.

Pokud popisujete možnost '-měkký' , Git vůbec nezmění soubory v indexu nebo spouštěcím adresáři.

Například jsme do našeho nedávného odevzdání zahrnuli dva soubory, i když chceme do tohoto souboru implementovat některé změny.

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

V důsledku toho se přihlásíme 'git reset' spolu s možností '-měkký' zrušit poslední potvrzení a také implementovat některé další změny.

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

Přes mistra pobočky

Naše větev je master/origin před odevzdáním 1 (aplikujte 'git push' pro publikování našich místních odevzdání).

Úpravy, které je třeba provést:

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

nový soubor: soubor1

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

Jak můžeme vidět, soubor je stále v indexu zrušením posledního odevzdání (úpravy, které mají být odevzdány), ačkoli bylo odevzdání smazáno.

Úspěšně jsme provedli poslední potvrzení v našem úložišti.

Hard Reset Git commit

Ve výše uvedené části můžeme zvážit, že můžeme snadno zrušit poslední potvrzení a zachovat změny provedené pro jakýkoli soubor v indexu. Ale v některých situacích si jednoduše přejeme odstranit změny a potvrzení provedené v jakémkoli souboru.

Jde o cíl opce, tj. '-tvrdý' .

Chcete-li vrátit zpět poslední potvrzení a odstranit všechny úpravy v indexu a adresáři, spusťte příkaz, tj. 'git reset' spolu s možností, tj. '-tvrdý' a popište odevzdání před příkazem HEAD ('HEAD~1') .

 $ git reset --hard HEAD~1 

Každé potvrzení a úprava bude po použití odstraněna z indexu a adresáře '--tvrdý' příkaz. Takže bychom měli být opatrní.

naučit se selen

Například jsme svěřili jakýkoli nový soubor s názvem 'file1' do našeho úložiště Git.

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

Nyní předpokládejme, že chceme zrušit poslední potvrzení a odstranit každou změnu.

 $ git reset --hard HEAD~1 

Nyní je HEAD na 90f8bb1 Second commit

Nyní zkontrolujme stav našeho úložiště git.

 $ git status 

Přes mistra pobočky

Naše větev je současná s master/origin (použijte příkaz 'git push' pro publikování našich místních commitů).

nahradit vše v řetězci java

Teď už není co dělat a pracovní strom je čistý.

Mixed Reset Git commit

Udržujte úpravy v našem pracovním adresáři, ale NE v indexu. Musíme použít příkaz, tzn ., 'git reset' spolu s možností, tj. '-smíšený' . Po tomto příkazu musíme jednoduše připojit 'HEAD~1' k poslednímu odevzdání.

 $ git reset --mixed HEAD~1 

Například jsme zahrnuli jakýkoli soubor s názvem 'file1' do jakéhokoli odevzdání, jehož zrušení požadujeme.

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

Jednoduše provedeme příkaz, tj. 'git reset' spolu s možností, tj. '-smíšený' pro zrušení posledního potvrzení.

V důsledku toho '-smíšený' příkaz je a 'směs' mezi hard a soft reset, tak jeho název.

Přes mistra pobočky

Naše větev je master/origin před odevzdáním 1 (aplikujte 'git push' pro publikování našich místních odevzdání).

Nesledované soubory: (aplikujte 'git add …' pro přidání do toho, co bude potvrzeno)

 file1 

Nic není zahrnuto pro odevzdání, ale jsou přítomny nesledované soubory (pro sledování použijte 'git track').

Zjistili jsme tedy další postup, jak vrátit poslední odevzdání zachováním úprav provedených v souborech.

Vrátit zpět poslední závazek spolu s návratem

Použijte příkaz, tj. 'git revert' a popsat závazek, který má být vrácen, tj. 'HLAVA' k odevzdání historie pro vrácení posledního odevzdání Git.

 $ git revert HEAD 

Příkaz 'git revert' se liší od příkazu 'git reset', protože může zaznamenat jakékoli nové odevzdání spolu s některými úpravami definovanými degenerací posledního odevzdání.

'HEAD~1' můžeme popsat pomocí příkazu 'git reset', protože tento příkaz reset nastaví jakékoli nové místo HEAD při degeneraci popsaného odevzdání.

V důsledku toho provedeme změny znovu u některých souborů, abychom je mohli vrátit a zavázat se, že nebudou provedeny. Potvrdili jsme jakýkoli nový soubor pro náš repozitář Git, ale přejeme si toto potvrzení zdegenerovat.

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

Pokud provedete příkaz 'git revert', Git otevře náš textový editor, aby provedl úpravy automaticky.

Jak git vrátit zpět poslední potvrzení

Když dokončíme provádění zprávy odevzdání, zobrazí se nová zpráva spolu s novým hashem odevzdání.

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

Pokud budeme muset znovu zkontrolovat naši historii Git, můžeme si všimnout přidaného nového potvrzení, abychom zrušili poslední potvrzení prostřednictvím našeho úložiště.

 $ 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