Git

Git Stash with Name

Git Stash with Name

Hogyan tárolhatja a változtatásokat társított névvel, és megtalálja azt utána

A fejlesztőknek gyakran többfeladatos feladatokat kell végrehajtaniuk. Lehet, hogy egy új funkción dolgozik, és kérhetik a hiba kijavítását. Vagy több projekt vezető fejlesztője lehet.

Amikor váltasz a feladatok között, néha nem akarsz befejezetlen munkát végezni. Ezekben az esetekben a git stash parancs nagy segítség lehet. Lehetővé teszi a változtatások halmozását, és később a befejezetlen munkához való visszatérést anélkül, hogy felesleges változtatásokat adna a git-adattáraihoz.

Munkafolyamat a Git Stash számára

Inicializáljuk a git master ágat, és végezzünk el egy fájlt a ReadMe fájlban.txt.

$ mkdir my_project
$ cd my_project /
$ git init
$ érintse meg a ReadMe gombot.txt
$ git add -A
$ git kötelezettség -m "Inicializálás"

Most adjunk hozzá egy másik fájlt, a nevű.txt a mester ághoz.

$ érintse meg a.txt
$ git add -A
$ git kötelezettség -m "Hozzáadva a.txt "

Ha megnézi az előzményeket, a következőket fogja látni:

$ git log - online
d79f7aa Hozzáadva a.txt
9434d7e Inicializálás

Most hozzunk létre egy feature1 elágazást, és adjunk hozzá egy b-t.txt fájl:

$ git elágazás funkció1
$ git checkout funkció1
$ érintés b.txt
$ git add -A
$ git kötelezettség -m "Hozzáadva b.txt "

Nyissa meg a b.txt fájlt egy szerkesztőben, és tedd a sorba:

Én hamarosan megváltoztatom ezt:

És mentse a fájlt. Ha ellenőrzi a git állapotát, a következőket látja:

$ git állapot
Az elágazás jellemzőjén1
Az elkövetéshez nem rendezett változások:
(használja a "git add … "A kötelezettségvállalások frissítéséhez)
(használja a "git checkout -- … "A munkakönyvtár változásainak elvetéséhez)
 
módosítva: b.txt
 
Nincs változás hozzáadva az elköteleződéshez (használja a "git add" és / vagy a "git kötelezettség -a" -t)

Tegyük fel, hogy ebben a szakaszban kérést kap az a frissítésére.txt fájl a fő ágon. De még nem végzett a b-vel.txt fájl. Ha megpróbálja megnézni a fő ágat, a következő hibát kapja:

$ git checkout master
hiba: A következő fájlok helyi módosításait felülírja a fizetés:
b.txt
Kérjük, hajtsa végre a változtatásokat, vagy tárolja azokat, mielőtt fiókot válthatna.
Megszakítás

De nem akarja elvégezni a befejezetlen munkát a b-ben.txt. Ebben a helyzetben használhatja a git retashet:

$ git stash
Mentett munkakönyvtár és indexállapotú WIP a feature1-n: 2cfe39b Hozzáadva b.txt
A HEAD most a 2cfe39b címen van Hozzáadva b.txt

Ha bejelöli b.txt, üresnek kell lennie:

$ macska b.txt
$

Ha ellenőrzi a rejtekhelyet, a következőket fogja látni

$ git stash list
stash @ 0: WIP on feature1: 2cfe39b Hozzáadva b.txt

Ha megpróbálja megnézni a fő ágat, akkor most képesnek kell lennie erre:

$ git checkout master
Átállt a "master" fiókra

Tegyük fel, hogy elvégzi a szükséges módosításokat a masteren, majd visszatér a feature1 ághoz:

$ git checkout funkció1

A b.A txt még mindig üres:

$ macska b.txt
$

De ha a tárolást a következő paranccsal kapja meg:

$ git stash érvényes
 
Az elágazás jellemzőjén1
Az elkövetéshez nem rendezett változások:
(használja a "git add … "A kötelezettségvállalások frissítéséhez)
(használja a "git checkout -- … "A munkakönyvtár változásainak elvetéséhez)
 
módosítva: b.txt
 
Nincs változás hozzáadva az elköteleződéshez (használja a "git add" és / vagy a "git kötelezettség -a" -t)

A Stash Apply parancs végrehajtotta az elrejtett módosításokat és alkalmazta b-re.txt fájl
A b-ben befejezheti munkáját.txt módosítom a sort

Meg akarom változtatni ezt:


Nak nek

Mindjárt megváltoztatom ezt: KÉSZ

Most folytassa és hajtsa végre a változtatásokat:

$ git add -A
$ git elkövetés -m "módosított b.txt ”

A tároló alkalmazása nem távolítja el automatikusan a tárolóból. Manuálisan kell kitisztítani:

$ git rejtett csepp
Lebukott refs / stash @ 0 (0a66a16b32633e8d564d08e38254c491c1b1d3be)

Miért Git Stash névvel?

A git stash verem. Tehát folyamatosan halmozhatja változásait.

Tegyük fel, hogy „X” -t ad a b-hez.txt, tedd el, adj egy „Y” -t a b-hez.txt, tegye el, és adjon hozzá egy „Z” -t a b-hez.txt és tedd el. Ha megnézi a rejtett előzményeket, valami ilyesmit fog látni:

$ git stash list
[e-mail védett] 0: WIP on feature1: 2d6f515 Módosítva b.txt
[e-mail védett] 1: WIP on feature1: 2d6f515 Módosítva b.txt
[e-mail védett] 2: WIP on feature1: 2d6f515 Módosítva b.txt

Önnek nincs módja tudni, hogy melyik rejtvény melyik változáson ment keresztül. Ha stagnál, a mentés opcióval megjegyzéseket tehet. A megjegyzések segítségével nevet csatolhat a tárhelyéhez, és felismerhetővé teheti őket:

$ git stash "X" mentése
Mentett munkakönyvtár és indexállapot On feature1: X
A HEAD most a 2d6f515 címen van módosítva. B.txt

Az „X”, „Y” és „Z” módosítások hozzáadásához az alábbiakat kaphatja tárolójában az egyes tárolások mentési opciójával:

$ git stash list
rejtés @ 0: Az 1. szolgáltatáson: Z
rejtés @ 1: Az 1. szolgáltatáson: Y
rejtés @ 2: Az 1. szolgáltatáson: X

Most minden egyes eltüntetett változáshoz megad egy nevet. Sajnos nem használhatja a nevet a tárolás lekérésére. Használnia kell a rejtett számot. Tegyük fel, hogy meg akarja szerezni az „Y” változását. Látja, hogy az [email protected] 1 Y. Tehát alkalmazhatja ezt a változást a jelenlegi fiókjára:

$ git stash @ stash @ @ 1

És a b.A txt-nek tartalmaznia kell az [email protected] 1 módosításait.

Ugyanazzal a módszerrel használhatja az elrejtést. Tegyük fel, hogy rájössz, hogy többé nincs szüksége az X-re. Csak a következő paranccsal törölheti az elrejtést:

$ git stash drop stash @ 2

És a rejtekhelynek el kell tűnnie:

$ git stash list
rejtés @ 0: Az 1. szolgáltatáson: Z
rejtés @ 1: Az 1. szolgáltatáson: Y

Ne feledje, hogy ha az Apply és drop opciókat paraméterek nélkül használja, akkor a verem tetejét fogja használni ([email protected] 0).

Következtetés

A git stash parancs hatékony módja a munkaterület kezelésének. A parancs elsajátítása elősegíti a hatékonyabb munkát.

A további vizsgálat:
  • https: // git-scm.com / book / en / v1 / Git-Tools-Stashing
Referenciák:

Verem túlcsordulás: hogyan lehet nevet adni és visszakeresni egy név szerint-név szerint

Vulkan Linux felhasználók számára
A grafikus kártyák minden új generációjával azt látjuk, hogy a játékfejlesztők átlépik a grafikus hűség határait, és egy lépéssel közelebb kerülnek a ...
OpenTTD vs Simutrans
Saját közlekedési szimuláció létrehozása szórakoztató, pihentető és rendkívül csábító lehet. Ezért meg kell győződnie arról, hogy a lehető legtöbb ját...
OpenTTD bemutató
Az OpenTTD az egyik legnépszerűbb üzleti szimulációs játék. Ebben a játékban létre kell hoznia egy csodálatos szállítási vállalkozást. Azonban kezdete...