Vedno sem imel vtis, da lahko shrambo poimenujete z git stash save stashname
, kar lahko kasneje uporabite z git stash apply stashname
. Vendar se zdi, da se v tem primeru zgodi le to, da se kot opis shrambe uporabi naslov shrambe
.
Ali ni načina, da bi dejansko poimenovali shrambo? Če ne, kaj bi priporočili za doseganje enakovredne funkcionalnosti? V bistvu imam majhno shrambo, ki bi jo rad občasno uporabil, vendar ne želim, da bi moral v git stash list
vedno loviti, kakšna je njena dejanska številka shrambe.
To storite tako:
git stash save "my_stash"
kjer je "my_stash"
ime shrambe.
Še nekaj koristnih stvari, ki jih je treba vedeti: Vse shrambe so shranjene v skladovnici. Vrsta:
git stash list
To bo našlo seznam vseh vaših shramb.
Če želite uporabiti shrambo in jo odstraniti iz skladovnice shramb, vnesite:
git stash pop stash@{n}
Če želite uporabiti zalogo in jo obdržati v zalogi, vnesite:
git stash apply stash@{n}
Pri čemer je n
indeks shranjene spremembe.
Če menite, da je dovolj pomembna, jo lahko spremenite v podružnico:
git stash branch <branchname> [<stash>]
iz strani man:
To ustvari in preveri novo vejo z imenom <ime veje>
, začenši z oddajo, pri kateri je bila prvotno ustvarjena <shramba>
, uporabi spremembe, zabeležene v <shrambi>
, v novo delovno drevo in indeks, nato pa zapusti <shrambo>
, če se to uspešno zaključi. Če <shramba>
ni podana, uporabi najnovejšo shrambo.
To je uporabno, če se je veja, na kateri ste sprožili git stash save
, dovolj spremenila, da git stash apply zaradi konfliktov ne uspe. Ker se shramba uporabi na vrhu revizije, ki je bila v času zagona git stash'a HEAD, obnovi prvotno shranjeno stanje brez konfliktov.
To novo vejo lahko pozneje prestavite na katero koli drugo mesto, ki je potomec mesta, kjer ste bili, ko ste jo prestavili.
Shrambe niso namenjene trajnim stvarem, kot si želite. Verjetno bi bilo bolje, če bi uporabljali oznake na oddajah. Sestavite stvar, ki jo želite shraniti. Iz nje naredite odjavo. Ustvarite oznako za to oddajo. Nato svojo vejo vrnite nazaj na HEAD^
. Ko želite to shrambo ponovno uporabiti, lahko uporabite git cherry-pick -n tagname
(-n
je ---ne-izjava
).