Kaip sukonfigūruoti savo pakeitimus susietu vardu ir vėliau jį rasti
Kūrėjams dažnai tenka atlikti daug užduočių. Galbūt dirbate su nauja funkcija ir gali būti pateikta užklausa ištaisyti klaidą. Arba galite būti pagrindinis kelių projektų kūrėjas.
Kai keičiate užduotis, kartais nenorite atlikti nebaigtų darbų. Šiais atvejais „git stash“ komanda gali būti labai naudinga. Tai leidžia sukrauti savo pakeitimus ir vėliau grįžti prie nebaigtų darbų, nepridėjus nereikalingų įsipareigojimų savo „git“ saugykloms.
„Git Stash“ darbo eiga
Inicializuokime „git“ pagrindinį filialą ir atlikime failą „ReadMe“.txt.
$ mkdir my_project$ cd my_project /
$ git init
$ palieskite „ReadMe“.txt
$ git pridėti -A
$ git įsipareigoti -m „Inicializuoti“
Dabar pridėkime kitą failą, vadinamą a.txt į pagrindinę šaką.
$ palieskite a.txt$ git pridėti -A
$ git įsipareigoti -m "Pridėta a.txt "
Jei patikrinsite istoriją, pamatysite:
$ git žurnalas - tiesioginisd79f7aa Pridėta a.txt
9434d7e Inicializuoti
Dabar sukurkime „feature1“ šaką ir pridėkime b.txt failas:
$ git filialo funkcija„$ git“ kasos funkcija
$ palieskite b.txt
$ git pridėti -A
$ git įsipareigoti -m "Pridėta b.txt "
Atidarykite savo b.txt failą redaktoriuje ir įdėkite į eilutę:
Ketinu tai pakeisti į…Ir išsaugokite failą. Jei patikrinsite savo „git“ būseną, pamatysite:
$ git būsenaŠakos ypatybė
Pakeitimai, kurie nebuvo surengti įvykdyti:
(naudokite "git add
(naudokite „git checkout“ --
modifikuotas: b.txt
jokių pakeitimų neįtraukta (naudokite „git add“ ir (arba) „git įsipareigoti -a“)
Tarkime, šiame etape gausite užklausą atnaujinti a.txt failas pagrindiniame filiale. Bet tu nepabaigei b.txt failas. Jei bandysite patikrinti pagrindinį filialą, gausite šią klaidą:
$ git atsiskaitymo meistrasklaida: atsiskaitydami bus perrašyti vietiniai šių failų pakeitimai:
b.txt
Prašau, atlikite pakeitimus arba paslėpkite juos, kad galėtumėte perjungti šakas.
Nutraukti
Bet jūs nenorite atlikti nebaigtų darbų b.txt. Šioje situacijoje galite naudoti „git“ laikiklį:
$ git paslėptiIšsaugotas darbo katalogas ir rodyklės būsenos WIP „feature1“: 2cfe39b Pridėta b.txt
HEAD dabar yra 2cfe39b Pridėta b.txt
Jei patikrinsite b.txt, jis turėtų būti tuščias:
$ katė b.txt$
Jei patikrinsite saugyklą, pamatysite:
„$ git“ paslėpimo sąrašasatlicināt @ 0: WIP on feature1: 2cfe39b Pridėta b.txt
Jei bandysite patikrinti pagrindinį filialą, turėtumėte tai padaryti dabar:
$ git atsiskaitymo meistrasPerjungtas į filialo „master“
Tarkime, kad atlikote pagrindiniame pakeitime būtinus pakeitimus ir grįžkite į „feature1“ filialą:
„$ git“ kasos funkcijaJūsų b.txt vis dar tuščias:
$ katė b.txt$
Bet jei pakeitimus gaunate iš saugyklos naudodami šią komandą:
Taikoma $ git atlicinātŠakos ypatybė
Pakeitimai, kurie nebuvo surengti įvykdyti:
(naudokite "git add
(naudokite „git checkout“ --
modifikuotas: b.txt
jokių pakeitimų neįtraukta (naudokite „git add“ ir (arba) „git įsipareigoti -a“)
„Stash Apply“ komanda pritaikė paslėptus pakeitimus ir pritaikė juos b.txt failas
Savo darbą galite baigti b.txt mano modifikuoti eilutę
Į
Dabar atlikite pakeitimus:
$ git pridėti -A$ git įsipareigoti -m "Pakeista b.txt “
Taikant šiukšliadėžę ji automatiškai neišvaloma. Turite išvalyti rankiniu būdu:
$ git paslėpimasNukrito nuorodos / atlicināt @ 0 (0a66a16b32633e8d564d08e38254c491c1b1d3be)
Kodėl „Git Stash“ su vardu?
„Git“ laikiklis yra kaminas. Taigi galite toliau kaupti savo pokyčius.
Tarkime, kad prie b pridėjote „X“.txt, padėkite jį, pridėkite „Y“ prie b.txt, įdėkite jį ir pridėkite „Z“ prie b.txt ir paslėpk. Jei patikrinsite paslėpimo istoriją, pamatysite maždaug taip:
„$ git“ paslėpimo sąrašas[apsaugotas el. paštu] 0: WIP on feature1: 2d6f515 Modified b.txt
[apsaugotas el. paštu] 1: WIP on feature1: 2d6f515 Modified b.txt
[apsaugotas el. paštu] 2: WIP on feature1: 2d6f515 Modified b.txt
Jūs niekaip negalite žinoti, kuris paslėpimas pasikeitė. Kai tu stovi, tu gali naudoti įrašymo parinktį komentarams pateikti. Galite naudoti komentarus, kad pridėtumėte vardą prie savo atminties ir padarytumėte juos atpažįstamus:
„$ git“ paslėpta, išsaugant „X“Išsaugotas darbo katalogas ir rodyklės būsena On feature1: X
HEAD dabar yra 2d6f515 Modifikuotas b.txt
Jei norite pridėti „X“, „Y“ ir „Z“ modifikacijas, naudodamiesi kiekvienos talpyklos išsaugojimo parinktimi, į savo krepšį galite patekti:
„$ git“ paslėpimo sąrašasAtlicināt @ 0: 1 funkcijoje: Z
Atlicināt @ 1: Apie 1 funkciją: Y
Atlicināt @ 2: 1 funkcijoje: X
Dabar turite kiekvieno paslėpto pakeitimo pavadinimą. Deja, jūs negalite naudoti vardo atgautai gauti. Turėsite naudoti atlicėjimo numerį. Tarkime, kad norite pakeisti „Y“. Matote, kad [apsaugotas el. Paštu] 1 yra Y. Taigi galite pritaikyti šį pakeitimą dabartiniame filiale:
„$ git“ paslėpimas taikomas „atlicināt“ @ 1Ir tavo b.„txt“ turėtų būti atlikti pakeitimai iš [apsaugotas el. paštu] 1.
Jūs galite naudoti tą patį metodą, jei norite mesti atlicėjimą. Tarkime, jūs suprantate, kad jums nebereikia X laikiklio. Galite tiesiog naudoti šią komandą, kad ištrintumėte tą atminimą:
„$ git“ likučio numetimo likučiai @ 2Atliekos turėtų nebelikti:
„$ git“ paslėpimo sąrašasAtlicināt @ 0: 1 funkcijoje: Z
Atlicināt @ 1: Apie 1 funkciją: Y
Atminkite, kad jei naudosite taikymo ir atsisakymo parinktis be jokių parametrų, ji naudos kamino viršų ([apsaugotas el. Paštu] 0).
Išvada
„Git stash“ komanda yra galingas būdas valdyti savo darbo sritį. Įvaldę šią komandą, galėsite dirbti efektyviau.
Tolesnis tyrimas:
- https: // git-scm.com / book / en / v1 / „Git-Tools-Stashing“
Nuorodos:
„Stack Overflow“: kaip pavadinti ir atgauti atlicintį pagal pavadinimą