Stashing vă permite să păstrați o copie a modificărilor pe care le-ați făcut într-un depozit, fără a fi nevoie să creați o comitare.
Este util dacă schimbați contextul, mai ales dacă mergeți înainte și înapoi între erori sau sarcini diferite pe același proiect.
Operațiunea de bază a git stash
Poti utilizați git stash pentru a vă ușura fluxul de lucru atunci când se ocupă de linii paralele de lucru. Imaginați-vă că lucrați la o sarcină de lungă durată, cu modificări în copia de lucru locală. Apoi, apare ceva urgent la care trebuie să lucrezi imediat.
Fluxul de lucru standard pentru păstrarea modificărilor este:
- Faceți modificări locale
- Ascundeți modificările locale
- Reaplicați modificările ascunse
Când ascundeți modificări folosind git stash [împinge] comandă, git se resetează la HEAD. Apoi puteți continua să lucrați la orice aveți nevoie, angajându-vă în depozit ca și cum nu ați făcut niciodată modificările originale.
Odată ce ați terminat cu orice v-a deturnat în primul rând, utilizați git stash pop
pentru a aplica modificările și pentru a le elimina din depozit. Puteți, de asemenea, să aplicați modificările și să le păstrați în depozit se aplică git stash. Acest lucru ar putea fi util dacă doriți să aplicați rapid modificările la mai multe ramuri.Lucrul cu mai mult de o rezervă
Dacă ești cu adevărat ocupat, s-ar putea să te trezești lucrând la mai multe sarcini simultan și s-ar putea să fie nevoie să le ascunzi pe toate. Nu vă faceți griji, git stash este creat pentru asta.
De fiecare dată când utilizați git stash push, salvați un alt set de modificări. Utilizare git stash list pentru a arăta tot ce ai ascuns. Veți vedea ceva cam așa:
stash@{0}: WIP pe principal: 2fba62e prima comitere
stash@{1}: WIP pe principal: 2fba62e prima comitere
Aceste mesaje nu sunt foarte utile, dar puteți lăsa câteva indicii pentru dvs. adăugând un mesaj personalizat atunci când păstrați:
git stash push -m „al treilea”
Când listați acum, veți vedea mesajul personalizat:
stash@{0}: pe principal: al treilea
stash@{1}: WIP pe principal: 2fba62e prima comitere
Afișarea diferențelor dintre diferențe
Pentru a afla ce s-a schimbat într-o rezervă, utilizați git stash show. Fără alte argumente, va afișa un rezumat al diferențelor pentru cea mai recentă rezervă, arătând astfel:
$ git stash show
README.md | 3 +++
1 fișier modificat, 3 inserări(+)
De asemenea, puteți transmite un ID de stocare pentru a interoga o anumită intrare:
git stash show stash@{0}
Crearea unei sucursale dintr-un depozit
S-ar putea să decizi că schimbările dintr-o rezervă sunt atât de semnificative încât merită să fie într-o ramură a lor. Daca da, creați o nouă ramură din depozit folosind ramură comanda:
git stash branch
Din nou, aceasta va funcționa în mod implicit pentru cea mai recentă rezervă, dar puteți furniza un ID de rezerve dacă este necesar. Git vă creează noua ramură din același punct din depozit ca și depozitul. Apoi aplică modificările din depozit la copia dvs. de lucru.
Curățarea Stash Up
Nu există nicio comandă „git unstash”. Dacă doriți să eliminați o intrare de stocare, utilizați drop:
git stash cădere brusca
Din nou, aceasta este implicită cea mai recentă, dar puteți furniza în schimb un ID de stocare. Dacă decideți că doriți să scăpați de tot ce ați ascuns, utilizați această comandă:
git stash clear
Folosiți git stash pentru comiteri ușoare temporare
Git stash-urile nu sunt nici pe departe la fel de puternice ca depozitele complete. Dar oferă încă o mulțime de funcționalități utile în sine. Folosiți ascunzișuri dacă deseori aveți nevoie să schimbați ramurile în mijlocul lucrului.
Stashingul este doar o mică parte din git, care este un program cu foarte multe de oferit.