Kako shraniti spremembe s pripadajočim imenom in jih nato najti
Razvijalci morajo pogosto opravljati več opravil. Morda delate na novi funkciji in morda bo prišlo do zahteve za odpravo napake. Lahko pa ste glavni razvijalec več projektov.
Ko preklapljate med nalogami, včasih ne želite opraviti nedokončanega dela. V teh primerih je ukaz git stash lahko v veliko pomoč. Omogoča skladanje sprememb in kasneje vrnitev na nedokončano delo, ne da bi v shrambe git dodajali nepotrebne zaveze.
Potek dela za Git Stash
Inicializiramo vejo git master in zapišemo datoteko ReadMe.txt.
$ mkdir moj_projekt$ cd moj_projekt /
$ git init
$ touch ReadMe.txt
$ git add -A
$ git commit -m "Inicializacija"
Zdaj pa dodajte še eno datoteko z imenom.txt v glavno vejo.
$ dotik a.txt$ git add -A
$ git commit -m "Dodan a.txt "
Če preverite zgodovino, boste videli:
$ git log --onelined79f7aa Dodan a.txt
9434d7e Inicializacija
Zdaj pa ustvariva vejo feature1 in dodaj b.datoteka txt:
$ git feature feature1$ git checkout feature1
$ dotik b.txt
$ git add -A
$ git commit -m "Dodano b.txt "
Odprite b.txt v urejevalniku in postavite v vrstico:
To bom spremenil v…In shranite datoteko. Če preverite svoje stanje git, boste videli naslednje:
$ git statusNa funkciji podružnice1
Spremembe niso predvidene za prevzem:
(uporabite "git add
(uporabite "git checkout --
spremenjeno: b.txt
za objavo ni dodanih sprememb (uporabite "git add" in / ali "git commit -a")
Recimo, da na tej stopnji prejmete zahtevo za posodobitev a.txt v glavni veji. Ampak niste končali z b.txt datoteko. Če poskusite preveriti glavno vejo, se prikaže naslednja napaka:
$ git checkout masternapaka: Vaše lokalne spremembe naslednjih datotek bi bile prepisane s plačilom:
b.txt
Preden zamenjate podružnice, jih spremenite ali shranite.
Prekinitev
Ne želite pa opraviti nedokončanega dela v b.txt. V tem primeru lahko uporabite skrivnico git:
$ git skrinjaShranjen delovni imenik in stanje indeksa WIP na feature1: 2cfe39b Dodano b.txt
HEAD je zdaj na 2cfe39b Dodano b.txt
Če označite b.txt, mora biti prazen:
$ mačka b.txt$
Če preverite zalogo, boste videli:
$ git skriti seznamskrinja @ 0: WIP na funkciji1: 2cfe39b Dodano b.txt
Če poskusite preveriti glavno vejo, bi to lahko storili zdaj:
$ git checkout masterPreklopljeno na vejo 'master'
Recimo, da naredite potrebne spremembe v glavni enoti in se nato vrnete na vejo feature1:
$ git checkout feature1Vaš b.txt je še vedno prazen:
$ mačka b.txt$
Če pa spremembe dobite iz zaloge, uporabite naslednji ukaz:
Uporabi $ git stashNa funkciji podružnice1
Spremembe niso predvidene za prevzem:
(uporabite "git add
(uporabite "git checkout --
spremenjeno: b.txt
za objavo ni dodanih sprememb (uporabite "git add" in / ali "git commit -a")
Ukaz za shranjevanje shrani sprejete spremembe in jih uporabi za b.txt datoteko
Svoje delo lahko dokončate v b.txt moje spreminjanje vrstice
Za
Zdaj pa nadaljujte s spremembami:
$ git add -A$ git commit -m "Spremenjeno b.txt "
Uporaba zaloge ne samodejno očisti iz zaloge. To morate očistiti ročno:
$ git znižanjeSpuščeni sklici / zaloga @ 0 (0a66a16b32633e8d564d08e38254c491c1b1d3be)
Zakaj Git Stash z imenom?
Git stash je kup. Tako lahko še naprej kopičite svoje spremembe.
Recimo, da v b dodate "X".txt, zakrije, dodajte "Y" v b.txt, ga shranite in dodajte "Z" v b.txt in ga shranite. Če preverite zgodovino skladiščenja, boste videli nekaj takega:
$ git skriti seznam[e-pošta zaščitena] 0: WIP na funkciji1: 2d6f515 Spremenjeno b.txt
[e-pošta zaščitena] 1: WIP na funkciji1: 2d6f515 Spremenjeno b.txt
[zaščitena po e-pošti] 2: WIP na funkciji1: 2d6f515 Spremenjeno b.txt
Ne morete vedeti, katera zaloga ima kakšno spremembo. Ko shranjujete, lahko uporabite komentar, če želite dodati komentarje. S komentarji lahko shraniš ime in ga prepoznaš:
$ git stash shrani "X"Shranjeni delovni imenik in stanje indeksa Na funkciji1: X
HEAD je zdaj na 2d6f515 Spremenjen b.txt
Za dodajanje sprememb »X«, »Y« in »Z« lahko v založniku z možnostjo shranjevanja za vsako zalogo dobite naslednje:
$ git skriti seznamskrinja @ 0: Vključena funkcija1: Z
skrinja @ 1: Na funkciji1: Y
skrinja @ 2: Na funkciji1: X
Zdaj imate ime za vsako spremembo, ki ste jo shranili. Žal imena ne morete uporabiti za shranjevanje zaloge. Uporabiti boste morali založno številko. Recimo, da želite dobiti svojo spremembo "Y". Vidite, da je [email protected] 1 Y. Torej lahko to spremembo uveljavite na svoji trenutni veji:
$ git stash uporabi skrinjo @ 1In vaš b.txt bi moral imeti spremembe iz [email protected] 1.
Isto metodo lahko uporabite za spuščanje zaloge. Recimo, zavedate se, da več ne potrebujete zaloge X. Za brisanje te zaloge lahko uporabite samo naslednji ukaz:
$ git stash drop stash @ 2In zaloga bi morala biti odpravljena:
$ git skriti seznamskrinja @ 0: Na funkciji1: Z
skrinja @ 1: Na funkciji1: Y
Ne pozabite, da če uporabite možnosti za uveljavljanje in spuščanje brez kakršnih koli parametrov, bo uporabil vrh sklada ([zaščitena z e-pošto] 0).
Zaključek
Ukaz git stash je močan način upravljanja vašega delovnega prostora. Obvladovanje tega ukaza vam bo pomagalo učinkoviteje delati.
Nadaljni študij:
- https: // git-scm.com / book / en / v1 / Git-Tools-Stashing
Reference:
Prelivanje skladov: kako-poimenovati-in-pridobiti-za-za-ime-v-git