Git

Git Stash s názvem

Git Stash s názvem

Jak Git uložit své změny s přidruženým jménem a najít ho později

Vývojáři často musí provádět více úkolů. Možná pracujete na nové funkci a může existovat požadavek na opravu chyby. Nebo můžete být hlavním vývojářem více projektů.

Když přepínáte mezi úkoly, někdy se nechcete dopustit nedokončené práce. V těchto případech může být skvělým pomocníkem příkaz git stash. Umožňuje vám ukládat změny a později se vrátit k nedokončené práci bez přidávání zbytečných závazků do vašich úložišť git.

Pracovní postup pro Git Stash

Pojďme inicializovat větev git master a potvrdit soubor ReadMe.txt.

$ mkdir my_project
$ cd můj_projekt /
$ git init
$ touch ReadMe.txt
$ git přidat -A
$ git commit -m "Inicializovat"

Nyní přidejme další soubor s názvem a.txt do hlavní větve.

$ touch a.txt
$ git přidat -A
$ git commit -m "Přidáno a.txt "

Pokud zkontrolujete historii, uvidíte:

$ git log - online
d79f7aa Přidáno a.txt
9434d7e Inicializovat

Nyní vytvořme větev feature1 a přidejme b.soubor txt:

$ git větev feature1
Funkce $ git checkout1
$ touch b.txt
$ git přidat -A
$ git commit -m "Přidáno b.txt "

Otevřete b.soubor txt v editoru a vložte do řádku:

Chystám se to změnit na ..

A uložte soubor. Pokud zkontrolujete svůj stav git, uvidíte následující:

stav $ git
Na větvi feature1
Změny, které nebyly provedeny pro potvrzení:
(použijte „git add … “K aktualizaci toho, co bude potvrzeno)
(použijte "git checkout." -- … “Zahodit změny v pracovním adresáři)
 
upraveno: b.txt
 
k potvrzení nebyly přidány žádné změny (použijte „git add“ a / nebo „git commit -a“)

Předpokládejme, že v této fázi dostanete požadavek na aktualizaci a.txt soubor na hlavní větvi. Ale s b. Jste ještě neskončili.soubor txt. Pokud se pokusíte zkontrolovat hlavní větev, zobrazí se následující chyba:

$ git pokladna master
chyba: Vaše místní změny v následujících souborech budou přepsány pokladnou:
b.txt
Než budete moci přepínat pobočky, potvrďte změny nebo je uložte.
Přerušení

Ale nechcete se dopustit nedokončené práce v b.txt. Git stash můžete použít v této situaci:

$ git skrýš
Uložený pracovní adresář a stav indexu WIP na feature1: 2cfe39b Přidáno b.txt
HEAD je nyní na 2cfe39b Přidáno b.txt

Pokud zaškrtnete b.txt, měl by být prázdný:

$ kočka b.txt
$

Pokud zkontrolujete skrýš, uvidíte:

$ git stash seznam
stash @ 0: WIP na feature1: 2cfe39b Přidáno b.txt

Pokud se pokusíte zkontrolovat hlavní větev, měli byste to udělat hned:

$ git pokladna master
Přepnuto na větev „master“

Předpokládejme, že na masteru provedete nezbytné změny a poté se vrátíte do větve feature1:

$ git pokladna feature1

Vaše b.txt je stále prázdný:

$ kočka b.txt
$

Pokud však získáte změny ze skrýši pomocí následujícího příkazu:

$ git stash platí
 
Na větvi feature1
Změny, které nebyly provedeny pro potvrzení:
(použijte „git add … “K aktualizaci toho, co bude potvrzeno)
(použijte "git checkout." -- … “Zahodit změny v pracovním adresáři)
 
upraveno: b.txt
 
k potvrzení nebyly přidány žádné změny (použijte „git add“ a / nebo „git commit -a“)

Příkaz stash apply vzal skryté změny a použil je na b.soubor txt
Svou práci můžete dokončit v b.txt moje úprava linky

Chystám se to změnit na ..


Na

Chystám se to změnit na HOTOVO

Nyní pokračujte a proveďte změny:

$ git přidat -A
$ git commit -m "Upraveno b.txt “

Použitím úkrytu se automaticky nevyčistí od úkrytu. Musíte to vyčistit ručně:

$ git stash drop
Zrušené doporučení / uložení @ 0 (0a66a16b32633e8d564d08e38254c491c1b1d3be)

Proč Git Stash s názvem?

Úložiště git je zásobník. Takže můžete své změny hromadit dál.

Předpokládejme, že do písmene b přidáte „X“.txt, uložte jej, přidejte „Y“ do b.txt, uložte jej a přidejte „Z“ do b.txt a schovat to. Pokud zkontrolujete historii ukládání, uvidíte něco jako toto:

$ git seznam
[chráněno e-mailem] 0: WIP on feature1: 2d6f515 Modified b.txt
[chráněno e-mailem] 1: WIP na feature1: 2d6f515 Upraveno b.txt
[chráněno e-mailem] 2: WIP na feature1: 2d6f515 Upraveno b.txt

Nemáte způsob, jak zjistit, která skrýš má kterou změnu. Když se schováte, můžete použít možnost uložení k vložení komentářů. Pomocí komentářů můžete ke svému úkrytu připojit název a učinit je rozpoznatelnými:

$ git stash uložit "X"
Uložený pracovní adresář a stav indexu Na feature1: X
HEAD je nyní na 2d6f515 Modified b.txt

Chcete-li přidat úpravy „X“, „Y“ a „Z“, můžete ve své skrýši získat pomocí možnosti uložení pro každou skrýš následující:

$ git stash seznam
stash @ 0: Zapnuto feature1: Z
stash @ 1: Zapnuto feature1: Y
stash @ 2: Zapnuto feature1: X

Nyní máte název pro každou uloženou změnu. Název bohužel nemůžete použít k načtení skrýš. Budete muset použít skrýšové číslo. Předpokládejme, že chcete dosáhnout změny „Y“. Vidíte, že [chráněno e-mailem] 1 je Y. Tuto změnu tedy můžete použít ve své aktuální pobočce:

$ git stash použít stash @ 1

A vaše b.txt by měl mít změny z [chráněno e-mailem] 1.

Stejnou metodu můžete použít k odložení úkrytu. Předpokládejme, že si uvědomíte, že X stash už nepotřebujete. K odstranění této skrýši můžete použít pouze následující příkaz:

$ git stash drop stash @ 2

A skrýš by měla být pryč:

$ git seznam
stash @ 0: Zapnuto feature1: Z
stash @ 1: Zapnuto feature1: Y

Nezapomeňte, že pokud použijete možnosti použití a přetažení bez jakýchkoli parametrů, použije se horní část zásobníku ([chráněno e-mailem] 0).

Závěr

Příkaz git stash je výkonný způsob, jak spravovat svůj pracovní prostor. Zvládnutí tohoto příkazu vám pomůže pracovat efektivněji.

Další studie:
  • https: // git-scm.com / book / en / v1 / Git-Tools-Stashing
Reference:

Stack Overflow: how-to-name-and-retrieve-a-stash-by-name-in-git

Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...
Hry Jak nainstalovat League Of Legends na Ubuntu 14.04
Jak nainstalovat League Of Legends na Ubuntu 14.04
Pokud jste fanouškem League of Legends, pak je to pro vás příležitost otestovat běh League of Legends. Všimněte si, že LOL je podporován na PlayOnLinu...
Hry Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
Nainstalujte si nejnovější strategickou hru OpenRA na Ubuntu Linux
OpenRA je herní engine Libre / Free Real Time Strategy, který obnovuje rané hry Westwood, jako je klasický Command & Conquer: Red Alert. Distribuované...