Git

Git Stash s imenom

Git Stash s imenom

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 --oneline
d79f7aa 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 status
Na obilježju grane1
Promjene nisu uprizorene za urezivanje:
(upotrijebite "git add ... "za ažuriranje onoga što će biti počinjeno)
(koristite "git checkout -- ... "za odbacivanje promjena u radnom direktoriju)
 
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 master
pogreš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 zaliha
Spremljeni 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 zaliha
spremnik @ 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 master
Prebačeno na granu 'master'

Pretpostavimo da napravite potrebne promjene na masteru, a zatim se vratite na granu feature1:

$ git checkout značajka1

Vaš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 stash
 
Na obilježju grane1
Promjene nisu uprizorene za urezivanje:
(upotrijebite "git add ... "za ažuriranje onoga što će biti počinjeno)
(koristite "git checkout -- ... "za odbacivanje promjena u radnom direktoriju)
 
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

Ovo ću promijeniti u ..


Do

Ovo ću promijeniti u GOTOVO

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 zaliha
Ispuš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 zaliha
spremnik @ 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 @ 1

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

I zaliha bi trebala nestati:

$ git popis zaliha
spremnik @ 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

Luke komercijalnih igara s otvorenim kodom
Besplatne igre s otvorenim kodom i više platformi mogu se koristiti za igranje starih, kao i nekih prilično nedavnih naslova igara. U ovom će se člank...
Najbolje igre naredbenog retka za Linux
Naredbeni redak nije samo vaš najveći saveznik pri korištenju Linuxa - on također može biti izvor zabave jer ga možete koristiti za igranje mnogih zab...
Najbolje aplikacije za mapiranje gamepada za Linux
Ako volite igrati igre na Linuxu s gamepadom umjesto tipičnim sustavom za unos tipkovnice i miša, za vas postoji nekoliko korisnih aplikacija. Mnoge r...