Git

Kā Git Rebase

Kā Git Rebase
git rebase ir apvienošanas lietderība tāpat kā apvienot. Bet tas, kā viņi strādā, ir atšķirīgs.

Šajā rakstā es runāšu par to, kā darbojas Git rebase, atšķirības starp Git rebase un Git un kā strādāt ar Git rebase. Tātad, sāksim darbu.

Git Rebase:

Pieņemsim, ka jums ir Git repozitorijs ar saistībām A, B, C iekš meistars zars. Tad jūs izveidojāt jaunu filiāli kāds darījums un pievienoja 2 jaunas saistības D un E uz kāds darījums zars.

1. attēls: sākotnējā saistību vēsture.

Pieņemsim, ka tagad esat aizmirsis kaut ko pievienot meistars zars. Tātad, jūs atgriezīsities pie meistars filiāle un pievienojiet jaunu apņemšanos G uz meistars zars. Jūsu git vēsturei vajadzētu izskatīties šādi.

2. attēls: saistību vēsture pēc saistības G pievienošanas galvenajā filiālē.

Viss izskatās labi. Ja vēlaties, lai visas izmaiņas, ko esat veicis kāds darījums filiāle būt meistars filiāli, jūs varat apvienot kāds darījums atzars uz meistars zars. Tas ir tas, kas git apvienot darīt.

Ko darīt, ja vēlaties apņemties G lai tā būtu pieejama kāds darījums zars? Nu, jūs varat izmantot git rebase.

No saistību vēstures 2. attēlā jūs varat redzēt, ka zars kāds darījums sākas no apņemšanās C. Ja jūs veicat git atkārtotu bāzi kāds darījums, tad tas sāktos no apņemšanās G kā parādīts 3. attēlā zemāk. Ņemiet vērā, ka saistību saturs D un E mainīsies arī pēc atkārtotas bāzes darbības. Apņemas D un E ietvers izmaiņas saistībās G. Tāpēc es piebildu * simbols pirms apņemšanās D un E.

Ja vēlaties uzzināt, kā izskatās saistību vēsture, ja es to apvienotu, tad ieskatieties 4. attēlā. Es to iekļāvu tikai tāpēc, lai jūs varētu to salīdzināt ar git rebase.

4. attēls: veiciet vēsturi, ja tika izmantota git sapludināšana.

Tagad, kad jūs zināt, kas ir git rebase, atšķirība starp git rebase un git saplūst un kāpēc to izmantoja, es parādīšu, kā to izmantot, šī raksta nākamajā sadaļā.

Git Rebase darbplūsma:

Šajā sadaļā es savā lokālajā datorā izveidošu jaunu git repozitoriju un parādīšu, kā darbojas git rebase. Es iesaku jums labi izprast git rebase, pirms to lietojat savā projektā.

Vispirms izveidojiet jaunu Git repozitoriju rebase-demo / datorā šādi:

$ git init atsākt demo

Tagad dodieties uz rebase-demo / direktoriju šādi:

$ cd rebase-demo /

Tagad izveidojiet jaunu failu pārbaude.txt sekojoši:

$ echo "A"> tests.txt

Pārbaude.txt failā ir tikai viena rindiņa A. Pieņemsim, ka tas ir jūsu sākotnējais projekta kods.

Tagad veiciet izmaiņas šādi:

$ git pievienot .
$ git saistības -m 'A'

Tagad pievienojiet citu rindu B uz pārbaude.txt failu, kā parādīts zemāk esošajā ekrānuzņēmumā.

Tagad veiciet izmaiņas šādi:

$ git pievienot .
$ git saistības -m 'B'

Tagad pievienosim vēl vienu C līniju pārbaude.txt failu.

Veiciet izmaiņas arī šādi:

$ git pievienot .
$ git saistības -m 'C'

Tagad galvenās filiāles saistību vēsturei vajadzētu izskatīties šādi:

$ git log - tiešsaistē

Pieņemsim, ka jums ir dažas jaunas idejas, kuras vēlaties izmēģināt. Tātad, izveidosim un izrakstīsimies uz jaunu filiāli jauna funkcija sekojoši:

$ git izrakstīšanās -b jauna funkcija

Tagad pievienojiet savu jauno ideju (rinda D teiksim) uz pārbaude.txt failu.

Tagad veiciet izmaiņas šādi:

$ git pievienot .
$ git saistības -m 'D'

Tagad pievienojiet rindiņu E pārbaude.txt failu.

Izpildiet izmaiņas šādi:

$ git pievienot .
$ git saistības -m 'E'

Tagad saistību vēsture jauna funkcija filiālei vajadzētu izskatīties šādi:

$ git log - tiešsaistē

Skatiet, kā apņemšanās notiek kārtībā A < B < C < D < E?

Tagad jūs atceraties, ka esat aizmirsis kaut ko pievienot meistars filiāle, kurā jūs arī gribējāt būt jauna funkcija zars! Tātad, izrakstīšanās uz meistars zars.

Es pievienoju jaunu rindu beigās pārbaude.txt failu, kā redzat.

Tagad veiciet izmaiņas šādi:

$ git pievienot .
$ git saistības -m 'G'

Tagad saistību vēsture meistars filiālei vajadzētu izskatīties šādi.

A < B < C < G

Tagad, lai pārvērtētu saistības no meistars atzars uz jauna funkcija filiāle, pirmā izrakstīšanās uz jauna funkcija zars.

$ git izrakstīšanās jauna funkcija

Tagad veiciet meistars filiāle šādi:

$ git rebase master

Daži apvieno konfliktu! Labosim to.

Nu, izmaiņas, ko esmu izdarījis saistībās G un D ir savstarpēji pretrunīgi. Es gribu saglabāt abus šos.

Pēc apvienošanās konflikta novēršanas pārbaude.txt failam vajadzētu izskatīties šādi:

Tagad pievienojiet izmaiņas pieturvietai šādi:

$ git pievienot .

Tagad turpiniet atsāknēšanu šādi:

$ git rebase - turpiniet

Kārtējais apvienošanās konflikts! Nu, tas var notikt. Rebase maina git saistību vēsturi. Tātad, ir sagaidāmas šādas lietas.

Šķiet, ka sapludināšanas process neizdevās dažu tukšu rindu dēļ. Labosim to.

Pēc apvienošanās konflikta novēršanas pārbaude.txt failam vajadzētu izskatīties šādi.

Tagad pievienojiet izmaiņas pieturvietai šādi:

$ git pievienot .

Tagad turpiniet atkārtotas bāzes darbību šādi:

$ git rebase - turpiniet

Git atsākšana ir pabeigta.

Kā redzat, tiek atjaunināta jauno funkciju filiāles saistību vēsture. Tagad saistību vēsture ir šāda:

A < B < C < G < D < E

Tāpat kā gaidīts.

Fināls pārbaude.txt failam vajadzētu izskatīties šādi.

Git rebase ir spēcīgs rīks. Bet to nekad nevajadzētu izmantot koplietojamās Git krātuvēs. Izmantojiet to tikai Git krātuvēs, kurās strādājat tikai jūs. Pretējā gadījumā jums ceļā nāksies saskarties ar daudzām problēmām.

Tātad, tā jūs izmantojat git rebase. Paldies, ka izlasījāt šo rakstu.

Kā palielināt FPS Linux?
FPS apzīmē Kadri sekundē. FPS uzdevums ir izmērīt kadru ātrumu video atskaņošanā vai spēļu izrādēs. Vienkāršos vārdos nepārtrauktu pilnekrāna attēlu s...
Populārākās Oculus App Lab spēles
Ja esat Oculus austiņu īpašnieks, jums ir jāsazinās par sānu ielādi. Sānu ielāde ir process, kurā austiņās tiek instalēts saturs, kas nav veikals. Sid...
10 labākās spēles, kuras spēlēt Ubuntu
Windows platforma ir bijusi viena no dominējošajām spēļu platformām, jo ​​mūsdienās tiek attīstīts milzīgs spēļu skaits, lai atbalstītu Windows. Vai k...