Git

Git Stash nimega

Git Stash nimega

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 - oneline
d79f7aa 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 staatus
Filiaali funktsioon1
Muudatused, mis ei ole toime pandud:
(kasutage "git add ... ", et ajakohastada kohustusi)
(kasutage "git checkout -- … ", Et loobuda muudatustest töökataloogis)
 
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 master
viga: 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ähmlus
Salvestatud 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 loend
atash @ 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 funktsioon1

Teie 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 ... ", et ajakohastada kohustusi)
(kasutage "git checkout -- … ", Et loobuda muudatustest töökataloogis)
 
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

Ma kavatsen selle muuta ..


To

Ma kavatsen selle muuta VALMISEKS

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 langus
Viidatud 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 loend
atash @ 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ö @ 1

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

Ja varastamine peaks olema kadunud:

$ git'i salvete loend
atash @ 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

OpenTTD õpetus
OpenTTD on seal üks populaarsemaid ärisimulatsioonimänge. Selles mängus peate looma suurepärase transpordiettevõtte. Alustate siiski alguses umbes 190...
SuperTuxKart Linuxile
SuperTuxKart on suurepärane pealkiri, mis on loodud selleks, et tuua teie Linuxi süsteemis tasuta Mario Karti kogemus. See on päris keeruline ja lõbus...
Lahing Wesnothi õpetuse eest
Battle for Wesnoth on üks populaarsemaid avatud lähtekoodiga strateegiamänge, mida saate praegu mängida. See mäng pole mitte ainult olnud väga pikka a...