Git

Git Stash z imenom

Git Stash z imenom

Kako shraniti spremembe s pripadajočim imenom in jih nato najti

Razvijalci morajo pogosto opravljati več opravil. Morda delate na novi funkciji in morda bo prišlo do zahteve za odpravo napake. Lahko pa ste glavni razvijalec več projektov.

Ko preklapljate med nalogami, včasih ne želite opraviti nedokončanega dela. V teh primerih je ukaz git stash lahko v veliko pomoč. Omogoča skladanje sprememb in kasneje vrnitev na nedokončano delo, ne da bi v shrambe git dodajali nepotrebne zaveze.

Potek dela za Git Stash

Inicializiramo vejo git master in zapišemo datoteko ReadMe.txt.

$ mkdir moj_projekt
$ cd moj_projekt /
$ git init
$ touch ReadMe.txt
$ git add -A
$ git commit -m "Inicializacija"

Zdaj pa dodajte še eno datoteko z imenom.txt v glavno vejo.

$ dotik a.txt
$ git add -A
$ git commit -m "Dodan a.txt "

Če preverite zgodovino, boste videli:

$ git log --oneline
d79f7aa Dodan a.txt
9434d7e Inicializacija

Zdaj pa ustvariva vejo feature1 in dodaj b.datoteka txt:

$ git feature feature1
$ git checkout feature1
$ dotik b.txt
$ git add -A
$ git commit -m "Dodano b.txt "

Odprite b.txt v urejevalniku in postavite v vrstico:

To bom spremenil v…

In shranite datoteko. Če preverite svoje stanje git, boste videli naslednje:

$ git status
Na funkciji podružnice1
Spremembe niso predvidene za prevzem:
(uporabite "git add … "Posodobiti, kaj bo zavezano)
(uporabite "git checkout -- … ", Da se zavržejo spremembe v delovnem imeniku)
 
spremenjeno: b.txt
 
za objavo ni dodanih sprememb (uporabite "git add" in / ali "git commit -a")

Recimo, da na tej stopnji prejmete zahtevo za posodobitev a.txt v glavni veji. Ampak niste končali z b.txt datoteko. Če poskusite preveriti glavno vejo, se prikaže naslednja napaka:

$ git checkout master
napaka: Vaše lokalne spremembe naslednjih datotek bi bile prepisane s plačilom:
b.txt
Preden zamenjate podružnice, jih spremenite ali shranite.
Prekinitev

Ne želite pa opraviti nedokončanega dela v b.txt. V tem primeru lahko uporabite skrivnico git:

$ git skrinja
Shranjen delovni imenik in stanje indeksa WIP na feature1: 2cfe39b Dodano b.txt
HEAD je zdaj na 2cfe39b Dodano b.txt

Če označite b.txt, mora biti prazen:

$ mačka b.txt
$

Če preverite zalogo, boste videli:

$ git skriti seznam
skrinja @ 0: WIP na funkciji1: 2cfe39b Dodano b.txt

Če poskusite preveriti glavno vejo, bi to lahko storili zdaj:

$ git checkout master
Preklopljeno na vejo 'master'

Recimo, da naredite potrebne spremembe v glavni enoti in se nato vrnete na vejo feature1:

$ git checkout feature1

Vaš b.txt je še vedno prazen:

$ mačka b.txt
$

Če pa spremembe dobite iz zaloge, uporabite naslednji ukaz:

Uporabi $ git stash
 
Na funkciji podružnice1
Spremembe niso predvidene za prevzem:
(uporabite "git add … "Posodobiti, kaj bo zavezano)
(uporabite "git checkout -- … ", Da se zavržejo spremembe v delovnem imeniku)
 
spremenjeno: b.txt
 
za objavo ni dodanih sprememb (uporabite "git add" in / ali "git commit -a")

Ukaz za shranjevanje shrani sprejete spremembe in jih uporabi za b.txt datoteko
Svoje delo lahko dokončate v b.txt moje spreminjanje vrstice

To bom spremenil v…


Za

Kmalu bom to spremenil v KONČANO

Zdaj pa nadaljujte s spremembami:

$ git add -A
$ git commit -m "Spremenjeno b.txt "

Uporaba zaloge ne samodejno očisti iz zaloge. To morate očistiti ročno:

$ git znižanje
Spuščeni sklici / zaloga @ 0 (0a66a16b32633e8d564d08e38254c491c1b1d3be)

Zakaj Git Stash z imenom?

Git stash je kup. Tako lahko še naprej kopičite svoje spremembe.

Recimo, da v b dodate "X".txt, zakrije, dodajte "Y" v b.txt, ga shranite in dodajte "Z" v b.txt in ga shranite. Če preverite zgodovino skladiščenja, boste videli nekaj takega:

$ git skriti seznam
[e-pošta zaščitena] 0: WIP na funkciji1: 2d6f515 Spremenjeno b.txt
[e-pošta zaščitena] 1: WIP na funkciji1: 2d6f515 Spremenjeno b.txt
[zaščitena po e-pošti] 2: WIP na funkciji1: 2d6f515 Spremenjeno b.txt

Ne morete vedeti, katera zaloga ima kakšno spremembo. Ko shranjujete, lahko uporabite komentar, če želite dodati komentarje. S komentarji lahko shraniš ime in ga prepoznaš:

$ git stash shrani "X"
Shranjeni delovni imenik in stanje indeksa Na funkciji1: X
HEAD je zdaj na 2d6f515 Spremenjen b.txt

Za dodajanje sprememb »X«, »Y« in »Z« lahko v založniku z možnostjo shranjevanja za vsako zalogo dobite naslednje:

$ git skriti seznam
skrinja @ 0: Vključena funkcija1: Z
skrinja @ 1: Na funkciji1: Y
skrinja @ 2: Na funkciji1: X

Zdaj imate ime za vsako spremembo, ki ste jo shranili. Žal imena ne morete uporabiti za shranjevanje zaloge. Uporabiti boste morali založno številko. Recimo, da želite dobiti svojo spremembo "Y". Vidite, da je [email protected] 1 Y. Torej lahko to spremembo uveljavite na svoji trenutni veji:

$ git stash uporabi skrinjo @ 1

In vaš b.txt bi moral imeti spremembe iz [email protected] 1.

Isto metodo lahko uporabite za spuščanje zaloge. Recimo, zavedate se, da več ne potrebujete zaloge X. Za brisanje te zaloge lahko uporabite samo naslednji ukaz:

$ git stash drop stash @ 2

In zaloga bi morala biti odpravljena:

$ git skriti seznam
skrinja @ 0: Na funkciji1: Z
skrinja @ 1: Na funkciji1: Y

Ne pozabite, da če uporabite možnosti za uveljavljanje in spuščanje brez kakršnih koli parametrov, bo uporabil vrh sklada ([zaščitena z e-pošto] 0).

Zaključek

Ukaz git stash je močan način upravljanja vašega delovnega prostora. Obvladovanje tega ukaza vam bo pomagalo učinkoviteje delati.

Nadaljni študij:
  • https: // git-scm.com / book / en / v1 / Git-Tools-Stashing
Reference:

Prelivanje skladov: kako-poimenovati-in-pridobiti-za-za-ime-v-git

HD Remastered Games za Linux, ki prej še niso izdale Linuxa
Mnogi razvijalci iger in založniki pripravijo HD remaster starih iger, da podaljšajo življenjsko dobo franšize, zato oboževalci zahtevajo združljivost...
Kako uporabljati AutoKey za avtomatizacijo iger Linux
AutoKey je namizni pripomoček za avtomatizacijo za Linux in X11, programiran v Python 3, GTK in Qt. Z njegovo funkcijo skriptiranja in MACRO lahko avt...
Kako prikazati števec FPS v igrah Linux
Linux gaming je dobil velik zagon, ko je Valve leta 2012 napovedal podporo Linuxu za odjemalca Steam in njihove igre. Od takrat se je veliko AAA in in...