Git

„Git Stash“ su vardu

„Git Stash“ su vardu

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 - tiesioginis
d79f7aa 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 … "Atnaujinti įsipareigojimus)
(naudokite „git checkout“ -- … ", Norėdami atmesti darbo katalogo pakeitimus)
 
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 meistras
klaida: 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ėpti
Iš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šas
atlicināt @ 0: WIP on feature1: 2cfe39b Pridėta b.txt

Jei bandysite patikrinti pagrindinį filialą, turėtumėte tai padaryti dabar:

$ git atsiskaitymo meistras
Perjungtas į filialo „master“

Tarkime, kad atlikote pagrindiniame pakeitime būtinus pakeitimus ir grįžkite į „feature1“ filialą:

„$ git“ kasos funkcija

Jū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 … "Atnaujinti įsipareigojimus)
(naudokite „git checkout“ -- … ", Norėdami atmesti darbo katalogo pakeitimus)
 
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ę

Ketinu tai pakeisti į…


Į

Aš tai ruošiuosi pakeisti į ATLIKTA

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ėpimas
Nukrito 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šas
Atlicinā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“ @ 1

Ir 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 @ 2

Atliekos turėtų nebelikti:

„$ git“ paslėpimo sąrašas
Atlicinā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ą

Kaip naudoti „AutoKey“, norint automatizuoti „Linux“ žaidimus
„AutoKey“ yra darbalaukio automatizavimo įrankis, skirtas „Linux“ ir „X11“, užprogramuotas „Python 3“, „GTK“ ir „Qt“. Naudodami scenarijų ir „MACRO“ f...
Kaip parodyti FPS skaitiklį „Linux“ žaidimuose
„Linux“ žaidimai gavo didelį postūmį, kai „Valve“ paskelbė „Linux“ palaikymą „Steam“ klientui ir jų žaidimams 2012 m. Nuo tada daugelis AAA ir indie ž...
Kaip atsisiųsti ir paleisti „Sid Meier Civilization VI“ sistemoje „Linux“
Įvadas į žaidimą „Civilization 6“ yra šiuolaikinė klasikinės koncepcijos, pristatytos „Age of Empires“ žaidimų serijoje, koncepcija. Idėja buvo gana p...