Git

Jak Git Rebase

Jak Git Rebase
git rebase je slučovací nástroj stejně jako git sloučit. Ale způsob jejich práce je jiný.

V tomto článku budu hovořit o tom, jak funguje Git rebase, rozdíly mezi Git rebase a Git merge a jak pracovat s Git rebase. Pojďme tedy začít.

Git Rebase:

Řekněme, že máte úložiště Git s revizemi A, B, C v mistr větev. Poté jste vytvořili novou větev nějaký obor a přidal 2 nové závazky D a E do nějaký obor větev.

Obr. 1: Počáteční historie potvrzení.

Řekněme, že jste zapomněli něco přidat do mistr větev. Takže se vraťte zpět do mistr větev a přidat nové potvrzení G do mistr větev. Vaše historie git by měla vypadat následovně.

Obr. 2: Historie potvrzení po přidání potvrzení G do hlavní větve.

Všechno vypadá dobře. Nyní, pokud chcete všechny změny, které jste provedli v nějaký obor pobočka v mistr větev, můžete sloučit nějaký obor větev do mistr větev. To je git spojit dělat.

Co když chcete potvrzení G být k dispozici v nějaký obor větev? K tomu můžete použít git rebase.

Z historie revizí na obr. 2 můžete vidět, že větev nějaký obor začíná od potvrzení C. Pokud uděláte git rebase na nějaký obor, pak by to začalo od potvrzení G jak je znázorněno na obr. 3 níže. Všimněte si, že obsah potvrzení D a E se také změní po operaci rebase. Závazky D a E zahrne změny do potvrzení G. Proto jsem přidal * symbol před závazky D a E.

Pokud chcete vědět, jak by vypadala historie potvrzení, kdybych ji spojil, podívejte se na obr. 4. Zahrnul jsem to, abyste je mohli porovnat s git rebase.

Obrázek 4: historie potvrzení, pokud bylo použito git merge.

Nyní, když víte, co je git rebase, rozdíl mezi git rebase a git merge a proč to git rebase použil, ukážu vám, jak jej používat v další části tohoto článku níže.

Pracovní postup Git Rebase:

V této části vytvořím na svém místním počítači nové úložiště git a ukážu vám, jak funguje git rebase. Doporučuji, abyste dobře porozuměli git rebase před jeho použitím ve vašem projektu.

Nejprve vytvořte nové úložiště Git rebase-demo / v počítači takto:

$ git init rebase-demo

Nyní přejděte na rebase-demo / adresář takto:

$ cd rebase-demo /

Nyní vytvořte nový soubor test.txt jak následuje:

$ echo "A"> test.txt

Test.Soubor txt obsahuje pouze jeden řádek A. Řekněme, že toto je váš počáteční projektový kód.

Nyní proveďte změny následujícím způsobem:

$ git přidat .
$ git commit -m 'A'

Nyní přidejte další řádek B do test.txt soubor, jak je znázorněno na následujícím obrázku.

Nyní proveďte změny následujícím způsobem:

$ git přidat .
$ git commit -m 'B'

Nyní přidejme do řádku další řádek C test.txt soubor.

Změny také proveďte následujícím způsobem:

$ git přidat .
$ git commit -m 'C'

Nyní by historie potvrzení hlavní větve měla vypadat takto:

$ git log - online

Řekněme, že máte nějaké nové nápady, které chcete vyzkoušet. Pojďme tedy vytvořit a vyzkoušet novou větev nová vlastnost jak následuje:

$ git checkout -b nová funkce

Nyní přidejte svůj nový nápad (řádek D řekněme) do test.txt soubor.

Nyní proveďte změny následujícím způsobem:

$ git přidat .
$ git commit -m 'D'

Nyní přidejte řádek E do test.txt soubor.

Potvrďte změny následujícím způsobem:

$ git přidat .
$ git commit -m 'E'

Nyní, historie spáchání nová vlastnost větev by měla vypadat takto:

$ git log - online

Podívejte se, jak jsou závazky v pořadí A < B < C < D < E?

Nyní si pamatujete, že jste zapomněli něco přidat do mistr větev, ve které jste také chtěli být nová vlastnost větev! Pokladna tedy mistr větev.

Na konec souboru jsem přidal nový řádek test.txt soubor, jak vidíte.

Nyní proveďte změny následujícím způsobem:

$ git přidat .
$ git commit -m 'G'

Nyní, historie spáchání mistr větev by měla vypadat takto.

A < B < C < G

Nyní rebaseujte závazky z mistr větev do nová vlastnost pobočka, první pokladna do nová vlastnost větev.

$ git pokladna nová funkce

Nyní udělejte git rebase z mistr větev takto:

$ git rebase master

Některé spojují konflikty! Pojďme to opravit.

Změny, které jsem provedl v potvrzení G a D si navzájem odporují. Chci si oba ponechat.

Po vyřešení konfliktu sloučení se test.txt soubor by měl vypadat takto:

Nyní přidejte změny do pracovní oblasti následujícím způsobem:

$ git přidat .

Nyní pokračujte v rebase následujícím způsobem:

$ git rebase - pokračovat

Další konflikt sloučení! To se může stát. Rebase změní historii git commitů. Takové věci se tedy očekávají.

Zdá se, že proces sloučení selhal kvůli některým prázdným řádkům. Pojďme to opravit.

Po vyřešení konfliktu sloučení se test.txt soubor by měl vypadat následovně.

Nyní přidejte změny do pracovní oblasti následujícím způsobem:

$ git přidat .

Nyní pokračujte v operaci rebase následujícím způsobem:

$ git rebase - pokračovat

Git rebase je kompletní.

Jak vidíte, historie potvrzení nové větve je aktualizována. Historie potvrzení je nyní následující:

A < B < C < G < D < E

Přesně podle očekávání.

Finále test.txt soubor by měl vypadat následovně.

Git rebase je mocný nástroj. Nikdy byste jej ale neměli používat ve sdílených úložištích Git. Používejte jej pouze v úložištích Git, která používáte pouze vy. V opačném případě budete na cestě čelit mnoha problémům.

Takto tedy používáte git rebase. Děkujeme za přečtení tohoto článku.

Hry Výukový program Shadow of the Tomb Raider pro Linux
Výukový program Shadow of the Tomb Raider pro Linux
Shadow of the Tomb Raider je dvanáctý přírůstek do série Tomb Raider - série akčních adventur vytvořená Eidosem Montrealem. Tato hra byla docela dobře...
Hry Jak zvýšit FPS v Linuxu?
Jak zvýšit FPS v Linuxu?
FPS znamená Snímků za sekundu. Úkolem FPS je měřit snímkovou frekvenci při přehrávání videa nebo herních výkonech. Jednoduše řečeno, počet nepřerušova...
Hry Nejlepší hry Oculus App Lab
Nejlepší hry Oculus App Lab
Pokud jste vlastníkem náhlavní soupravy Oculus, musíte mít informace o bočním nakládání. Sideloading je proces instalace neukládaného obsahu do náhlav...