Kuidas oma muudatused seotud nimega varjata ja pärast üles leida
Arendajad peavad sageli tegema mitut ülesannet. Võimalik, et töötate uue funktsiooni kallal ja võib olla taotlus vea parandamiseks. Või võite olla mitme projekti juhtiv arendaja.
Ülesannete vahel vahetades ei taha te mõnikord lõpetamata tööd teha. Nendel juhtudel võib suureks abiks olla käsk git stash. See võimaldab teil virnastada muudatused ja hiljem naasta lõpetamata töö juurde, lisamata oma git-hoidlatesse tarbetuid muudatusi.
Töövoog Git Stashi jaoks
Initsialiseerime git-põhiharu ja määrame faili ReadMe.txt.
$ mkdir my_project$ cd my_project /
$ git init
$ puudutage ReadMe.txt
$ git lisa -A
$ git pühendama -m "Initialize"
Lisame nüüd veel ühe faili nimega a.txt põhiharu juurde.
$ puudutage a.txt$ git lisa -A
$ git pühendama -m "Lisatud a.txt "
Kui kontrollite ajalugu, näete:
$ git log - onelined79f7aa Lisatud a.txt
9434d7e Vormista
Nüüd loome funktsiooni1 haru ja lisame b.txt-fail:
filiaali $ git funktsioon1$ git checkout funktsioon1
$ puudutage b.txt
$ git lisa -A
$ git toime -m "Lisatud b.txt "
Avage b.txt fail redaktoris ja pane reale:
Ma kavatsen selle muuta ..Ja salvestage fail. Kui kontrollite oma giti olekut, näete järgmist:
$ git staatusFiliaali funktsioon1
Muudatused, mis ei ole toime pandud:
(kasutage "git add
(kasutage "git checkout --
muudetud: b.txt
sidumiseks pole muudatusi lisatud (kasutage "git add" ja / või "git toime -a")
Oletame, et selles etapis saate taotluse a värskendamiseks.txt-fail peaharus. Kuid te pole b-ga valmis saanud.txt-fail. Kui proovite kontrollida peaharu, kuvatakse järgmine tõrge:
kassas $ git masterviga: kassas kirjutatakse teie järgmised muudatused järgmistesse failidesse üle:
b.txt
Enne harude vahetamist tehke palun oma muudatused või peitke need.
Katkestamine
Kuid te ei soovi teha lõpetamata tööd b-s.txt. Selles olukorras saate kasutada git-kleepimist:
$ git kähmlusSalvestatud töökataloog ja indeksi oleku WIP funktsioonile1: 2cfe39b Lisatud b.txt
HEAD on nüüd aadressil 2cfe39b Lisatud b.txt
Kui kontrollite b.txt, see peaks olema tühi:
$ kass b.txt$
Kui kontrollite salve, näete:
$ git'i salvete loendatash @ 0: WIP on feature1: 2cfe39b Lisatud b.txt
Kui proovite kontrollida põhiharu, peaksite seda saama teha kohe:
kassas $ git masterÜleminek harule 'master'
Oletame, et teete põhihalduris vajalikud muudatused ja pöördute siis tagasi teenuse1 harusse:
$ git checkout funktsioon1Teie b.txt on endiselt tühi:
$ kass b.txt$
Aga kui saate muudatustest salve järgmise käsu abil:
Kehtivad $ git kätköFiliaali funktsioon1
Muudatused, mis ei ole toime pandud:
(kasutage "git add
(kasutage "git checkout --
muudetud: b.txt
sidumiseks pole muudatusi lisatud (kasutage "git add" ja / või "git toime -a")
Käsk Kätte rakendamine võttis peidetud muudatused ja rakendas selle b-le.txt-fail
Oma töö saate lõpetada punktis b.txt minu rea muutmine
To
Nüüd jätkake oma muudatustega:
$ git lisa -A$ git pühendama -m "Muudetud b.txt ”
Kätte rakendamine ei puhasta seda automaatselt. Peate selle käsitsi puhastama:
$ git tasemete langusViidatud viited / olek @ 0 (0a66a16b32633e8d564d08e38254c491c1b1d3be)
Miks Git Stash nimega?
Git kott on virn. Nii saate muudatusi jätkata.
Oletame, et lisate b-le tähe "X".txt, peidake see, lisage b-le "Y".txt, peidake see ja lisage b-le täht “Z”.txt ja varjata seda. Kui kontrollite kulude ajalugu, näete midagi sellist:
$ git'i salvete loend[meiliga kaitstud] 0: WIP funktsioonil1: 2d6f515 Muudetud b.txt
[meiliga kaitstud] 1: WIP funktsioonil1: 2d6f515 Muudetud b.txt
[meiliga kaitstud] 2: WIP funktsioonil1: 2d6f515 Muudetud b.txt
Teil pole mingit võimalust teada, milline vargus on muutunud. Kui olete vait, saate kommentaaride sisestamiseks kasutada salvestamisvalikut. Kommentaaride abil saate oma olekule nime lisada ja need äratuntavaks muuta:
$ git salk salvestab "X"Salvestatud töökataloog ja indeksi olek Funktsioonil 1: X
HEAD on nüüd aadressil 2d6f515 Muudetud b.txt
X-i, Y-i ja Z-i muudatuste lisamiseks võite oma kätesse salvestada järgmise, kasutades iga kasti salvestamise võimalust:
$ git'i salvete loendatash @ 0: funktsioonil1: Z
atash @ 1: funktsioonil 1: Y
atash @ 2: funktsioonil 1: X
Nüüd on teil iga peidetud muudatuse nimi. Kahjuks ei saa te nime kasutada atribuudi hankimiseks. Peate kasutama varastamise numbrit. Oletame, et soovite oma Y-muutust saada. Näete, et [meiliga kaitstud] 1 on Y. Nii et saate selle muudatuse rakendada oma praeguses harus:
$ git Kätega rakendage Kätkö @ 1Ja teie b.txt-s peaksid olema muudatused alates [email protected] 1.
Kätte viskamiseks võite kasutada sama meetodit. Oletame, et mõistate, et te ei vaja enam X-sidet. Kätkö kustutamiseks võite kasutada lihtsalt järgmist käsku:
$ git stash drop stash @ 2Ja varastamine peaks olema kadunud:
$ git'i salvete loendatash @ 0: funktsioonil1: Z
atash @ 1: funktsioonil 1: Y
Pidage meeles, et kui kasutate ilma parameetriteta rakendusi Apply ja drop, kasutab see virna ülaosa ([email protected] 0).
Järeldus
Git stash käsk on võimas viis oma tööruumi haldamiseks. Selle käsu valdamine aitab teil tõhusamalt töötada.
Edasine uuring:
- https: // git-scm.com / book / et / v1 / Git-Tools-Stashing
Viited:
Virna ületäitumine: kuidas-nime-ja-leida-nimega-riputada