Kako prikriti promjene s pridruženim imenom i pronaći ih nakon toga
Programeri često moraju obavljati više zadataka. Možda radite na novoj značajci i možda postoji zahtjev za ispravljanje programske pogreške. Ili ste možda vodeći programer na više projekata.
Kada se prebacujete između zadataka, ponekad ne želite izvršiti nedovršeni posao. U tim slučajevima naredba git stash može vam biti od velike pomoći. Omogućuje vam slaganje promjena i kasnije povratak na nedovršeni rad bez dodavanja nepotrebnih predavanja u vaše git spremišta.
Tijek rada za Git Stash
Inicirajmo git master granu i zabilježimo datoteku ReadMe.txt.
$ mkdir moj_projekt$ cd moj_projekt /
$ git init
$ touch ReadMe.txt
$ git dodaj -A
$ git commit -m "Pokreni"
Sad dodamo još jednu datoteku koja se zove.txt u glavnu granu.
$ dodirni a.txt$ git dodaj -A
$ git commit -m "Dodan je.txt "
Ako provjerite povijest, vidjet ćete:
$ git log --onelined79f7aa Dodan a.txt
9434d7e Inicijalizirajte
Ajmo sada stvoriti granu feature1 i dodati b.txt datoteka:
$ git značajka grane1$ git checkout značajka1
$ dodir b.txt
$ git dodaj -A
$ git commit -m "Dodano b.txt "
Otvorite svoj b.txt datoteku u editoru i stavite u red:
Ovo ću promijeniti u ..I spremite datoteku. Ako provjerite svoj git status, vidjet ćete sljedeće:
$ git statusNa obilježju grane1
Promjene nisu uprizorene za urezivanje:
(upotrijebite "git add
(koristite "git checkout --
izmijenjeno: b.txt
bez dodavanja promjena u urezivanje (koristite "git add" i / ili "git commit -a")
Pretpostavimo da u ovoj fazi dobijete zahtjev za ažuriranje a.txt datoteku na glavnoj grani. Ali niste završili s b.txt datoteku. Ako pokušate provjeriti glavnu granu, dobit ćete sljedeću pogrešku:
$ git checkout masterpogreška: Vaše lokalne promjene sljedećih datoteka bile bi prepisane naplatom:
b.txt
Molimo, zabilježite svoje promjene ili ih sakrijte prije nego što možete promijeniti grane.
Prekida
Ali ne želite izvršiti nedovršeni posao u b.txt. U ovom slučaju možete upotrijebiti git stash:
$ git zalihaSpremljeni radni direktorij i stanje indeksa WIP na svojstvu1: 2cfe39b Dodano b.txt
HEAD je sada na 2cfe39b Dodano b.txt
Ako označite b.txt, trebao bi biti prazan:
$ mačka b.txt$
Ako provjerite zalihu, vidjet ćete:
$ git popis zalihaspremnik @ 0: WIP na značajci1: 2cfe39b Dodano b.txt
Ako pokušate provjeriti glavnu granu, trebali biste to moći učiniti sada:
$ git checkout masterPrebačeno na granu 'master'
Pretpostavimo da napravite potrebne promjene na masteru, a zatim se vratite na granu feature1:
$ git checkout značajka1Vaša b.txt je još uvijek prazan:
$ mačka b.txt$
Ali ako promjene dobijete iz zalihe pomoću sljedeće naredbe:
Primjenjuje se $ git stashNa obilježju grane1
Promjene nisu uprizorene za urezivanje:
(upotrijebite "git add
(koristite "git checkout --
izmijenjeno: b.txt
bez dodavanja promjena u urezivanje (koristite "git add" i / ili "git commit -a")
Naredba za primjenu skrivanja izvršila je skrivene promjene i primijenila je na b.txt datoteku
Svoj posao možete dovršiti u b.txt moje mijenjanje linije
Do
Sada naprijed i izvršite promjene:
$ git dodaj -A$ git commit -m "Izmijenjeno b.txt "
Primjenom zalihe ne očisti se automatski iz nje. Morate ga očistiti ručno:
$ git zalihaIspuštene preporuke / zaliha @ 0 (0a66a16b32633e8d564d08e38254c491c1b1d3be)
Zašto Git Stash s imenom?
Git stash je hrpa. Tako možete nastaviti nakupljati promjene.
Pretpostavimo da dodate "X" u b.txt, sakrijte ga, dodajte "Y" u b.txt, sakrijte ga i dodajte "Z" u b.txt i sakrijte ga. Ako provjerite povijest zaliha, vidjet ćete nešto poput ovoga:
$ git popis zaliha[e-pošta zaštićena] 0: WIP na feature1: 2d6f515 Izmijenjeno b.txt
[e-pošta zaštićena] 1: WIP na svojstvu1: 2d6f515 Izmijenjeno b.txt
[e-pošta zaštićena] 2: WIP na svojstvu1: 2d6f515 Izmijenjeno b.txt
Ni na koji način ne možete znati koja zaliha ima koju promjenu. Kad skrivate, možete upotrijebiti opciju spremanja da biste dodali komentare. Pomoću komentara možete priložiti ime svojoj zalihi i učiniti ih prepoznatljivima:
$ git zaliha spremi "X"Spremljeni radni direktorij i stanje indeksa Na svojstvu1: X
HEAD je sada na 2d6f515 Izmijenjeno b.txt
Za dodavanje modifikacija "X", "Y" i "Z" možete dodati sljedeće u svoju zalihu koristeći opciju spremanja za svaku zalihu:
$ git popis zalihaspremnik @ 0: Na značajci1: Z
spremnik @ 1: Na značajci1: Y
spremnik @ 2: Na značajci1: X
Sada imate naziv za svaku promjenu koju ste sakrili. Nažalost, ne možete koristiti to ime za dohvaćanje skrivenog prostora. Morat ćete upotrijebiti skriveni broj. Pretpostavimo da želite dobiti svoju promjenu "Y". Vidite da je [zaštićen e-poštom] 1 Y. Dakle, tu promjenu možete primijeniti na svoju trenutnu granu:
$ git stash primijeni skrivanje @ 1I vaše b.txt bi trebao imati promjene iz [e-mail zaštićen] 1.
Istu metodu možete koristiti za ispuštanje zalihe. Pretpostavimo, shvatite da vam X-ova zaliha više nije potrebna. Možete jednostavno upotrijebiti sljedeću naredbu da biste izbrisali tu zalihu:
$ git stash drop stash @ 2I zaliha bi trebala nestati:
$ git popis zalihaspremnik @ 0: Na značajci1: Z
spremnik @ 1: Na značajci1: Y
Imajte na umu da će se, ako koristite opcije primijeniti i ispustiti bez ikakvih parametara, koristiti vrh snopa ([zaštićena e-poštom] 0).
Zaključak
Naredba git stash moćan je način upravljanja vašim radnim prostorom. Ovladavanje ovom naredbom pomoći će vam u učinkovitijem radu.
Daljni studiji:
- https: // git-scm.com / book / en / v1 / Git-Tools-Stashing
Reference:
Stack Overflow: kako-imenovati-i-dohvatiti-skrivanje-imenom-u-gitu