Git

Ako Git Rebase

Ako Git Rebase
git rebase je nástroj na zlúčenie rovnako ako git zlúčiť. Spôsob ich práce je však iný.

V tomto článku budem hovoriť o tom, ako funguje Git rebase, rozdiely medzi Git rebase a Git merge a ako pracovať s Git rebase. Takže poďme na to.

Git Rebase:

Povedzme, že máte úložisko Git so záväzkami A, B, C v pán pobočka. Potom ste vytvorili novú vetvu nejaký obor a pridal 2 nové potvrdenia D a E do nejaký obor pobočka.

Obrázok 1: Počiatočná história záväzkov.

Teraz, povedzme, zabudli ste niečo pridať do pán pobočka. Takže sa vrátite k pán vetva a pridať nové potvrdenie G do pán pobočka. Vaša história systému git by mala vyzerať nasledovne.

Obrázok 2: História potvrdenia po pridaní potvrdenia G do hlavnej vetvy.

Všetko vyzerá dobre. Teraz, ak chcete všetky zmeny, ktoré ste v priečinku vykonali nejaký obor pobočka byť v pán pobočka, môžete zlúčiť nejaký obor pobočka do pán pobočka. Toto je čo git zlúčiť robiť.

Čo ak chcete potvrdenie G byť k dispozícii v nejaký obor pobočka? Na to môžete použiť git rebase.

Z histórie potvrdenia na obr. 2 môžete vidieť, že vetva nejaký obor začína od spáchania C. Ak urobíte git rebase ďalej nejaký obor, potom by to začalo od spáchania G ako je znázornené na obrázku 3 nižšie. Upozorňujeme, že obsah potvrdenia D a E sa zmení aj po operácii rebase. Záväzky D a E zahrnie zmeny do potvrdenia G. Preto som pridal * symbol pred záväzkami D a E.

Ak chcete vedieť, ako by vyzerala história potvrdenia, keby som ju spojil, pozrite sa na obr. Zahrnul som to len preto, aby ste to mohli porovnať s git rebase.

Obrázok 4: História potvrdenia, ak bolo použité git merge.

Teraz, keď viete, čo je git rebase, rozdiel medzi git rebase a git merge a prečo ho git rebase použil, ukážem vám, ako ho používať v nasledujúcej časti tohto článku nižšie.

Pracovný postup Git Rebase:

V tejto časti vytvorím na svojom lokálnom počítači nové úložisko git a ukážem vám, ako funguje git rebase. Odporúčam, aby ste dobre porozumeli git rebase pred jeho použitím vo vašom projekte.

Najskôr vytvorte nové úložisko Git rebase-demo / v počítači takto:

$ git init rebase-demo

Teraz prejdite na ikonu rebase-demo / adresár takto:

$ cd rebase-demo /

Teraz vytvorte nový súbor test.TXT nasledovne:

$ echo "A"> test.TXT

Test.Súbor txt obsahuje iba jeden riadok A. Povedzme, toto je váš pôvodný kód projektu.

Teraz vykonajte zmeny nasledovne:

$ git pridať .
$ git commit -m 'A'

Teraz pridajte ďalší riadok B do test.TXT súbor, ako je znázornené na snímke obrazovky nižšie.

Teraz vykonajte zmeny nasledovne:

$ git pridať .
$ git commit -m 'B'

Teraz pridajme ďalší riadok C k test.TXT spis.

Zmeny tiež vykonajte nasledovne:

$ git pridať .
$ git commit -m 'C'

História potvrdenia hlavnej pobočky by teraz mala vyzerať takto:

$ git log - online

Povedzme, že máte nejaké nové nápady, ktoré chcete vyskúšať. Poďme teda vytvoriť a vyskúšať novú pobočku Nová funkcia nasledovne:

$ git checkout -b nová funkcia

Teraz pridajte svoj nový nápad (riadok D povedzme) do test.TXT spis.

Teraz vykonajte zmeny nasledovne:

$ git pridať .
$ git commit -m 'D'

Teraz pridajte riadok E do test.TXT spis.

Vykonajte zmeny nasledovne:

$ git pridať .
$ git commit -m 'E'

Teraz, história spáchania Nová funkcia pobočka by mala vyzerať takto:

$ git log - online

Pozrite sa, ako sú provízie v poradí A < B < C < D < E?

Teraz si pamätáte, že ste zabudli niečo pridať do súboru pán pobočka, v ktorej ste tiež chceli byť Nová funkcia pobočka! Takže, pokladňa do pán pobočka.

Na konci súboru som pridal nový riadok test.TXT súbor, ako vidíte.

Teraz vykonajte zmeny nasledovne:

$ git pridať .
$ git commit -m 'G'

Teraz, história spáchania pán pobočka by mala vyzerať takto.

A < B < C < G

Teraz, aby sme zmenšili viazanosť záväzkov z pán pobočka do Nová funkcia pobočka, prvá platba do Nová funkcia pobočka.

$ git checkout nová funkcia

Teraz urobte git rebase z pán vetva takto:

$ git rebase master

Niektoré spájajú konflikty! Poďme to napraviť.

Zmeny, ktoré som vykonal v záväzku G a D si navzájom odporujú. Chcem si obe ponechať.

Po vyriešení konfliktu zlúčenia sa test.TXT súbor by mal vyzerať takto:

Teraz pridajte zmeny do pracovnej oblasti nasledovne:

$ git pridať .

Teraz pokračujte v rebase nasledujúcim spôsobom:

$ git rebase - pokračovať

Ďalší zlučovací konflikt! Môže sa to stať. Rebase zmení históriu potvrdenia git. Očakávajú sa teda také veci.

Zdá sa, že proces zlúčenia zlyhal kvôli niektorým prázdnym riadkom. Poďme to napraviť.

Po vyriešení konfliktu zlúčenia sa test.TXT súbor by mal vyzerať nasledovne.

Teraz pridajte zmeny do pracovnej oblasti nasledovne:

$ git pridať .

Teraz pokračujte v operácii rebase nasledovne:

$ git rebase - pokračovať

Git rebase je dokončený.

Ako vidíte, história potvrdenia vetvy nových funkcií sa aktualizuje. História potvrdenia je teraz nasledovná:

A < B < C < G < D < E

Presne podľa očakávaní.

Finálny test.TXT súbor by mal vyzerať nasledovne.

Git rebase je mocný nástroj. Nikdy by ste ho však nemali používať na zdieľaných úložiskách Git. Používajte ho iba v úložiskách Git, ktoré používate iba vy. V opačnom prípade budete na ceste čeliť mnohým problémom.

Takto teda používate git rebase. Ďakujeme, že ste si prečítali tento článok.

Recenzia bezdrôtovej myši Microsoft Sculpt Touch
Nedávno som čítal o Microsoft Sculpt Touch bezdrôtová myš a rozhodol sa ju kúpiť. Po chvíli používania som sa rozhodol s ním podeliť o svoje skúsenost...
Trackpad a ukazovateľ myši AppyMouse na obrazovke pre tablety so systémom Windows
Používateľom tabletov často chýba ukazovateľ myši, najmä keď notebooky bežne používajú. Dotykové smartphony a tablety majú veľa výhod a jediným obmedz...
Stredné tlačidlo myši nefunguje v systéme Windows 10
The stredné tlačidlo myši pomáha vám prechádzať dlhé webové stránky a obrazovky s množstvom údajov. Ak sa to zastaví, budete nakoniec používať klávesn...