Ako Git uložiť vaše zmeny s priradeným menom a potom ich nájsť
Vývojári musia často vykonávať viac úloh naraz. Možno pracujete na novej funkcii a môže sa vyskytnúť požiadavka na opravu chyby. Alebo môžete byť vedúcim vývojárom viacerých projektov.
Keď prechádzate medzi úlohami, niekedy sa vám nechce vykonávať nedokončenú prácu. V týchto prípadoch môže byť skvelým pomocníkom príkaz git stash. Umožňuje vám ukladať zmeny a neskôr sa vrátiť k nedokončenej práci bez pridávania zbytočných záväzkov do vašich úložísk git.
Pracovný postup pre Git Stash
Poďme inicializovať hlavnú vetvu git a spáchať súbor ReadMe.TXT.
$ mkdir môj_projekt$ cd môj_projekt /
$ git init
$ touch ReadMe.TXT
$ git pridať -A
$ git commit -m "Inicializovať"
Teraz pridajme ďalší súbor s názvom a.txt do hlavnej pobočky.
$ dotyk a.TXT$ git pridať -A
$ git commit -m "Pridané a.TXT"
Ak skontrolujete históriu, uvidíte:
$ git log - onlined79f7aa Pridané a.TXT
9434d7e Inicializuje sa
Teraz vytvorme vetvu feature1 a pridajme b.súbor txt:
$ git pobočka feature1Funkcia pokladnice $ git1
$ dotyk b.TXT
$ git pridať -A
$ git commit -m "Pridané b.TXT"
Otvorte b.súbor txt v editore a vložte do riadku:
Chystám sa to zmeniť na ..A uložte súbor. Ak skontrolujete stav git, uvidíte nasledovné:
stav $ gitNa pobočke feature1
Zmeny, ktoré nie sú zavedené pre potvrdenie:
(použite „git add
(použite „git checkout --
upravené: nar.TXT
k potvrdeniu neboli pridané žiadne zmeny (použite „git add“ a / alebo „git commit -a“)
Predpokladajme, že v tejto fáze dostanete žiadosť o aktualizáciu a.súbor txt na hlavnej vetve. Ale s b. Ste neskončili.súbor txt. Ak sa pokúsite skontrolovať hlavnú vetvu, zobrazí sa nasledujúca chyba:
$ git pokladňa, majsterchyba: Vaše miestne zmeny v nasledujúcich súboroch by boli prepísané platbou:
b.TXT
Pred prepnutím pobočiek vykonajte zmeny alebo ich uložte.
Prerušuje sa
Ale nechcete sa dopustiť nedokončenej práce v b.TXT. Git stash môžete použiť v tejto situácii:
$ git skrýšaUložený pracovný adresár a stav indexu WIP na feature1: 2cfe39b Pridané b.TXT
HEAD je teraz na 2cfe39b Pridané b.TXT
Ak zaškrtnete b.txt, malo by to byť prázdne:
$ mačka b.TXT$
Ak zaškrtnete skrýšu, uvidíte:
$ git skrytý zoznamstash @ 0: WIP na feature1: 2cfe39b Pridané b.TXT
Ak sa pokúsite skontrolovať hlavnú vetvu, mali by ste to urobiť teraz:
$ git pokladňa, majsterPrepnuté na pobočku „hlavný“
Predpokladajme, že vykonáte potrebné zmeny na hlavnom počítači a potom sa vrátite späť do vetvy feature1:
Funkcia pokladnice $ git1Tvoj b.txt je stále prázdny:
$ mačka b.TXT$
Ak však získate zmeny zo skrýšy pomocou nasledujúceho príkazu:
$ git skrýša platíNa pobočke feature1
Zmeny, ktoré nie sú zavedené pre potvrdenie:
(použite „git add
(použite „git checkout --
upravené: nar.TXT
k potvrdeniu neboli pridané žiadne zmeny (použite „git add“ a / alebo „git commit -a“)
Príkaz stash apply vzal skryté zmeny a použil ich na b.súbor txt
Svoju prácu môžete dokončiť v b.txt moja úprava riadku
To
Teraz pokračujte a vykonajte zmeny:
$ git pridať -A$ git commit -m "Upravené b.TXT"
Aplikácia skrýšy ju automaticky nevyčistí od skrýšy. Musíte to vyčistiť manuálne:
$ git stash dropZrušené odporúčanie / skladovanie @ 0 (0a66a16b32633e8d564d08e38254c491c1b1d3be)
Prečo Git Stash s menom?
Úložisko git je stoh. Takže môžete svoje zmeny hromadiť ďalej.
Predpokladajme, že do písmena b pridáte „X“.txt, uložte ho, pridajte „Y“ do b.txt, uložte ho a pridajte „Z“ do b.txt a schovať ho. Ak skontrolujete históriu ukladania, zobrazí sa niečo podobné:
$ git skrytý zoznam[chránené e-mailom] 0: WIP na feature1: 2d6f515 Upravené b.TXT
[chránené e-mailom] 1: WIP na feature1: 2d6f515 Upravené b.TXT
[chránené e-mailom] 2: WIP na feature1: 2d6f515 Upravené b.TXT
Nemáte ako vedieť, ktorá skrýša má ktorú zmenu. Keď sa nachádzate v zálohe, môžete do komentárov vložiť možnosť uloženia. Pomocou komentárov môžete k svojmu skrytu pripojiť meno a urobiť ho tak rozpoznateľným:
$ git skrýša uložiť "X"Uložený pracovný adresár a stav indexu Na feature1: X
HEAD je teraz na 2d6f515 Modified b.TXT
Ak chcete pridať modifikáciu „X“, „Y“ a „Z“, môžete v priečinku skrývať nasledujúce položky pomocou možnosti uloženia pre každú skrýšu:
$ git skrytý zoznamstash @ 0: Zapnutý feature1: Z
stash @ 1: Zapnutý feature1: Y
stash @ 2: Zapnuté feature1: X
Teraz máte názov pre každú uloženú zmenu. Názov bohužiaľ nemôžete použiť na získanie skrýšy. Budete musieť použiť skrýšené číslo. Predpokladajme, že chcete dosiahnuť zmenu „Y“. Uvidíte, že [chránený e-mailom] 1 je Y. Túto zmenu teda môžete uplatniť na svoju aktuálnu pobočku:
$ git stash použiť stash @ 1A tvoja b.txt by mal mať zmeny z [email protected] 1.
Rovnakou metódou môžete odhodiť skrýšu. Predpokladajme, že si uvedomíte, že už X skrýšu nepotrebujete. Na odstránenie tejto položky môžete použiť iba nasledujúci príkaz:
$ git skrýša kvapka skrýša @ 2A skrýša by mala byť preč:
$ git skrytý zoznamstash @ 0: Zapnutý feature1: Z
stash @ 1: Zapnutý feature1: Y
Pamätajte, že ak použijete možnosti použitia a pustenia bez akýchkoľvek parametrov, použije sa horná časť zásobníka ([chránené e-mailom] 0).
Záver
Príkaz git stash je výkonný spôsob, ako spravovať svoj pracovný priestor. Ovládanie tohto príkazu vám pomôže pracovať efektívnejšie.
Ďalšie štúdium:
- https: // git-scm.com / book / en / v1 / Git-Tools-Stashing
Referencie:
Stack Overflow: how-to-name-and-retrieve-a-stash-by-name-in-git