logo

Git | Darbas su Stash

Būtinos sąlygos: Git

„Git“ leidžia keliems vartotojams vienu metu dirbti su tuo pačiu projektu. Tarkime, kad kūrėjas dirba su funkcija filiale ir jam reikia atlikti pakeitimus iš kito kūrėjo filialo arba jei jis turi skubiai dirbti su kita funkcija, tačiau funkcija, su kuria jis šiuo metu dirba, yra neužbaigta. Tokiu atveju negalite įvesti dalinio šiuo metu veikiančios funkcijos kodo. Norėdami pridėti šią naują funkciją, turite pašalinti dabartinius pakeitimus ir išsaugoti juos kur nors kitur. Tokio tipo situacijai „Git“ siūlo labai naudingą komandą, žinomą kaip „ git slėptuvė “. git slėptuvė komanda išsaugo anksčiau parašytą kodą ir grįžta į paskutinį įvykdymą, kad būtų galima pradėti iš naujo. Dabar galite pridėti naują funkciją nepažeisdami senosios, nes ji išsaugoma vietoje. Įsipareigoję naudoti naują funkciją, galite tęsti darbą su senąja funkcija, kuri buvo neužbaigta ir neįparduota.



Git Stash vs Git Commit

Yra du alternatyvūs būdai išsaugoti pakeitimus „git“ saugykloje: „stash“ ir „commit“.

Turite atsargų: „Git stash“ komanda gali būti naudojama tai atlikti, jei kūrėjas dirba su projektu ir nori išsaugoti pakeitimus jų neįsipareigojant. Tai leis jam pakeisti filialus ir dirbti su kitais projektais nepažeidžiant esamų pakeitimų. Jei reikia, galite atšaukti pakeitimus, išsaugo dabartinę būseną ir grąžina kūrėjus į ankstesnę būseną.

Git commit: Kūrėjai nori visam laikui saugoti savo šaltinio kodo pakeitimus saugyklos istorijoje. The git commit Norėdami tai padaryti, galite naudoti komandą. Git sukuria naują įsipareigojimą, kuris dokumentuoja jūsų pakeitimus ir prideda juos prie saugyklos istorijos.



Apibendrinant. „Git“ įpareigoja visam laikui išsaugoti saugyklos istorijos pakeitimus, o „Git Stash“ naudojama failų, su kuriais dirbame, bet dar nėra paruošti, atsarginėms kopijoms kurti.

Git Stash vs Git Reset

Abi komandos gali būti derinamos norint valdyti Git saugyklos pakeitimus ir turėti įvairius naudojimo atvejus.

Git reset ir Git stash Naudodami šias dvi komandas galime atkurti visus anksčiau ištrintus ir atsargines kopijas sukurtus failus į dabartinį darbo katalogą. Šie du pagrindiniai skirtumai yra tokie:



Git Stash

Git Reset

„Git stash“ naudojama failams, kurie yra modifikuoti ir kurie nėra pasirengę įsipareigoti, išsaugoti.

Git atstatymas gali visiškai anuliuoti pakeitimus ir pakeisti šakos žymeklį į naują įsipareigojimą

Kūrėjai gali perjungti filialus ir dirbti su kitomis užduotimis nepaveikdami dabartinių pakeitimų.

Jau atlikti pakeitimai atmetami naudojant „Git“ atstatymą.

Git Stash vs Git Stage

Suskirstymas naudojamas pakeitimams paruošti tolesniam įvykdymui, o „Git Stash“ naudojama modifikuotų, bet dar neparengtų failų atsarginėms kopijoms kurti. Abi komandos gali būti derinamos norint valdyti Git saugyklos pakeitimus ir turėti įvairius naudojimo atvejus.

Git Stash Git Stage
„Git Stash“ naudojama failų atsarginėms kopijoms kurti Failai pridedami prie git indekso naudojant git etapą.

„Git Stash“ naudojama, jei reikia perjungti į kitą užduotį arba šaką, kai dirbate su funkcija ar trikčių taisymu.

Git etapų modifikacijos turi būti įtrauktos į paskesnį įpareigojimą, kai naudojate komandą git add.

Kuriame aplanke saugoma „Git Stash“ istorija?

Kai naudosime git slėptuvę, duomenys bus saugomi slėptuvių pavidalu mūsų vietinėje saugykloje. Pagal numatytuosius nustatymus duomenys bus saugomi git/refs/stash faile. Šiame faile visos nuorodos yra saugomos, o tikrieji duomenys saugomi .git/objects kataloge, kaip ir kiti Git objektai .

foreach ciklo mašinraštis

Žemiau esanti komanda naudojama visoms sukurtoms slėptuvėms išvardyti.

git stash list>

Kaip išsaugoti pakeitimus „Git“?

Norėdami išsaugoti nepatvirtintus pakeitimus vėlesniam naudojimui, galite naudoti 'git slėptuvė' komandą. Ši komanda išsaugo vietines modifikacijas ir grąžina darbo katalogą, kad jis atitiktų HEAD įsipareigojimą, kad gautumėte švarų darbo katalogą.

Štai keletas svarbių plačiausiai naudojamų parinkčių:

    „Git atlicināt“ „Git slėptuvė“ išsaugoti „Git slėptuvė“

Darbo saugojimas („Git Stash“)

git stash>
git statusas

Pagal numatytuosius nustatymus veikia git slėptuvė išsaugos pakeitimus, kurie buvo įtraukti į jūsų indeksą (pakopiniai pakeitimai) ir pakeitimus, atliktus failuose, kuriuos šiuo metu stebi Git (nepakopiniai pakeitimai). Norėdami išsaugoti nesekamus failus, naudokite git stash -u .

Kelių atmintinių tvarkymas („Git Stash“ sąrašas)

Galite sukurti keletą atmintinių ir peržiūrėti jas naudodami 'git slėpinukų sąrašas' komandą. Kiekvienas atmintinės įrašas pateikiamas su jo pavadinimu (pvz. slėptuvė@{1} ), filialo, kuris buvo aktualus įrašymo metu, pavadinimas ir trumpas įsipareigojimo aprašymas, kuriuo buvo pagrįstas įrašas.

git stash list>
git slėptuvės sąrašas

Norėdami suteikti daugiau konteksto atmintyje, sukuriame atmintinę naudodami šią komandą:

git stash save 'message'>

Kas yra „Git Stash Apply“ ir „POP“ („Git Stash Apply“ ir „POP“)

Galite iš naujo taikyti anksčiau paslėptus pakeitimus naudodami „git stash pop“ arba „git stash taikyti“ komandas. Vienintelis skirtumas tarp abiejų komandų yra tas „git stash pop“ pašalina pakeitimus iš atmintinės ir iš naujo pritaiko pakeitimus darbinėje kopijoje „git stash taikyti“ tik iš naujo taiko pakeitimus darbinėje kopijoje, nepašalindamas pakeitimų iš atmintinės. Paprastais žodžiais, pop pašalina būseną iš saugojimo sąrašo taikyti nepašalina valstybės iš saugojimo sąrašo. Naudodami tolesnę komandą galime iš naujo pritaikyti išsaugotus pakeitimus. Naujausia atmintinė bus pritaikyta mūsų darbo katalogui, taip pat ji bus paimta iš slėptuvių sąrašo.

git stash pop>
git slėptuvė pop
git stash apply>
git stash taikyti

Pagal numatytuosius nustatymus „git stash pop“ arba „git stash taikyti“ iš naujo pritaikys naujausią atmintinę: stash@{0} Norėdami pasirinkti, kurią atmintinę taikyti, galite perduoti identifikatorių kaip paskutinį argumentą ( Dėl pvz. :- git stash pop stash@{2}).

Git Stash Show

git slėptuvės šou komanda naudojama atmintyje atliktų operacijų santraukai rodyti.

git stash show>
git slėptuvės šou

Filialo sukūrimas iš „Stash“ („Git Stash Branch“)

Jei norite sukurti ir patikrinti naują atšaką, pradedant nuo įsipareigojimo, kai iš pradžių buvo sukurta atmintinė, ir pritaikyti atmintyje išsaugotus pakeitimus, naudokite „git slėptuvė“ filialo filialo_pavadinimas slėptuvės_pavadinimas“ . Jis atmeta atmintinę, kuri pateikiama kaip argumentas, o jei nepateikiama, atmeta naujausią.

git stash branch newbranch stash@{0}>
git slėptuvė filialas

„Stash“ išvalymas („Git Stash Clear“)

Norėdami ištrinti tam tikrą atmintinę ( Pavyzdžiui: – stash@{1}), naudokite „git stash drop stash@{1}“ . Pagal numatytuosius nustatymus ši komanda bus panaikinta slėptuvė@{0} jei nepateikiamas joks argumentas ( git slėptuvė lašas ). Jei norite ištrinti visas atmintines vienu metu, naudokite 'git stash clear' komandą.

Git Stash Clear

Komanda „git stash“ leidžia mums išsaugoti nepadarytas modifikacijas, kad galėtume jas naudoti ateityje. Kai naudojame komandą git stash, failų atsarginės kopijos sukuriamos automatiškai. Tai leidžia mums perjungti filialus, atlikti savo darbus ir lengvai susigrąžinti failus, kai būsime pasirengę vėl su jais dirbti.

Palik atidėti

Nesekamų arba ignoruojamų failų saugojimas

Galime naudoti komandą git stash, kad išsaugotume nesekamus arba ignoruojamus failus. Atlikdami toliau nurodytus veiksmus galime išsaugoti failus:

1 žingsnis: Išsaugokite pakeitimus naudodami toliau pateiktą komandą.

git stash save --include-untracked>

„Include-untracked“ taip pat išsaugos visus neatsektus failus.

2 žingsnis: Patikrinkite atmintį:

Norėdami patvirtinti, kad atmintinė buvo sukurta, naudokite toliau pateiktą komandą:

git stash list>

3 veiksmas: Naudodami šią komandą galime sugrąžinti ir pritaikyti atmintinę.

git stash apply stash@{0}>

4 veiksmas: Baigę sugrąžinti atmintinę, jei ji yra nepageidaujama, galime ją ištrinti naudodami šią komandą.

git stash drop stash@{0}>

„Git Stash“ geriausia praktika

Štai keletas geriausių praktikos, kaip naudoti Palik atidėti komandą.

  1. Nenaudokite per daug „git stash“: „Git Stash“ turi būti naudojamas saikingai, kai labai svarbu atlikti kitą užduotį, tada tik mes turėtume naudoti „git stash“, tai turės įtakos pakeitimams, kuriuos reikia atlikti įsipareigojant.
  2. Venkite nereikalingų pranešimų: Naudodami git stash galite pridėti pranešimą, kuriame aprašomi saugomi pakeitimai. Padarykite žinutę prasmingą. Kai vėliau reikės prisiminti, kas yra atmintinėje, tai pravers. Naudokite teiginius, kurie yra informatyvūs ir įkvepiantys bei tiksliai atspindi slepiamas pokyčius.
  3. Įdarbinti filialuose: „Stashing“ yra naudingas įrankis dirbant su „Git“ filialais. Prieš išsaugodami pakeitimus, sukurkite naują šaką, kad galėtumėte pereiti prie kitų užduočių ar šakų nepaveikdami dabartinių pakeitimų. Grįžkite į filialą ir pritaikykite atidėjimą, kai būsite pasiruošę dar kartą dirbti su pakeitimais.
  4. Pakeitimai turėtų būti atliekami kuo greičiau: saugojimas turėtų būti naudojamas tik kaip laikinas sprendimas. Baigę atlikti pakeitimų rinkinį, turėtumėte juos įtraukti į saugyklą, kad išsaugotumėte pakeitimų įrašą.