Git

Git Merge -no-ff Option

Git Merge -no-ff Option

Porozumění možnosti Git Merge no-ff

Jednou z jeho silných stránek je schopnost snadného sloučení gitu. Během sloučení používá git sloučení rychle vpřed, když si všimne, že HEAD aktuální větve je předchůdcem potvrzení, které se pokoušíte sloučit. Při rychlém sloučení není žádný nový závazek. Git jen posune ukazatel. Pokud toto chování není žádoucí, můžete použít příznak no-ff k vytvoření nového potvrzení pro sloučení.

Jak vypadá sloučení s rychlým posunem vpřed a bez něj

Po rychlém posunu vpřed bude vaše historie git vypadat takto:

C0 -> C1 -> C2-> C3

U stejného počtu závazků je zde historie sloučení bez rychlého převodu vpřed:

V prvním případě nic nenasvědčuje tomu, že by došlo k nějakému rozvětvení. V druhém případě historie zobrazuje potvrzení C4, které indikuje, kde ke sloučení došlo.

Procházka příkladem

Vytvoříte úložiště git, vytvoříte větev a poté vyzkoušíte sloučení sa bez rychlého převodu vpřed.

Část 1: Nastavení

Nejprve můžete vytvořit úložiště git pomocí následujících kroků:

$ mkdir my_project
$ cd my_project
$ git init
$ touch a.txt
$ git přidat -A
$ git commit -m "C0: Přidání a.txt "

Nyní vytvořme větev nazvanou funkce a proveďte několik změn:

$ git větev funkce
Funkce pokladny $ git
$ touch b.txt
$ git přidat -A
$ git commit -m "C1: Přidání b.txt "
$ touch c.txt
$ git přidat -A
$ git commit -m "C2: Přidání c.txt "
$ touch d.txt
$ git přidat -A
$ git commit -m "C3: Přidání d.txt "

Sekce 2: Sloučit s rychlým přeposíláním

Vraťme se k hlavní větvi a sloučíme do ní větve funkcí:

$ git pokladna master
$ git slučovací funkce

Výstup:

Aktualizace 08076fb… 9ee88eb
Rychle vpřed
b.txt | 0
C.txt | 0
d.txt | 0
3 soubory změněny, 0 vložení (+), 0 odstranění (-)
vytvořit režim 100644 b.txt
vytvořit režim 100644 c.txt
vytvořit režim 100644 d.txt

Pokud zkontrolujete historii, uvidíte:

$ git log - online
9ee88eb C3: Přidání d.txt
c72b92c C2: Přidání c.txt
2e4039e C1: Přidání b.txt
08076fb C0: Přidání a.txt

Takže všechny provize z větve funkcí jsou nyní v hlavní větvi. Pokud budete pokračovat v provádění změn v předloze, neexistuje způsob, jak zjistit, kdy byla do ní sloučena větev funkcí.

Část 3: Bez rychlého přeposílání

Opakujte oddíl 1 pro novou složku.

Pak zkuste sloučit bez rychlého předávání:

$ git pokladna master
$ git merge --no-ff funkce

Ve výchozím textovém editoru vašeho git se otevře následující:

Sloučit větev 'funkce'
# Zadejte zprávu o potvrzení a vysvětlete, proč je toto sloučení nutné,
# zvláště pokud slučuje aktualizovanou upstream do větve tématu.
#
# Řádky začínající znakem # budou ignorovány a prázdná zpráva se přeruší
# potvrzení.

Upravte komentáře. V tomto případě stačí přidat „C4:“ před „Funkce sloučení větve“ “. Výstup by měl vypadat takto:

Sloučení provedené „rekurzivní“ strategií.
b.txt | 0
C.txt | 0
d.txt | 0
3 soubory změněny, 0 vložení (+), 0 odstranění (-)
vytvořit režim 100644 b.txt
vytvořit režim 100644 c.txt
vytvořit režim 100644 d.txt

Pokud nyní zkontrolujete historii, měla by vypadat takto:

$ git log - online
e071527 C4: Sloučit větev 'funkce'
bb79c25 C3: Přidání d.txt
692bd8c C2: Přidání c.txt
a0df62a C1: Přidání b.txt
7575971 C0: Přidání a.txt

Vidíte, že i když máte přesně stejné změny, tato verze sloučení má zvláštní potvrzení C4, které znamená sloučení větve funkcí do hlavní.

Závěr

Příznak git merge no-ff pomáhá vytvořit čitelnější historii. Umožňuje vám umístit značky, které jasně ukazují, kde ke sloučení došlo. To vám může ušetřit čas a námahu během ladění.

Další studie:

Reference:
Hry Jak stáhnout a přehrát Sid Meier's Civilization VI v systému Linux
Jak stáhnout a přehrát Sid Meier's Civilization VI v systému Linux
Úvod do hry Civilization 6 je moderní pojetí klasického konceptu představeného v sérii her Age of Empires. Myšlenka byla docela jednoduchá; začali bys...
Hry Jak nainstalovat a hrát Doom na Linuxu
Jak nainstalovat a hrát Doom na Linuxu
Úvod do Doom Série Doom vznikla v 90. letech po vydání původního Doomu. Byl to okamžitý hit a od té doby herní série získala řadu ocenění a původní Do...
Hry Vulkan pro uživatele Linuxu
Vulkan pro uživatele Linuxu
S každou novou generací grafických karet vidíme, že vývojáři her posouvají hranice grafické věrnosti a přibližují se k fotorealismu. Ale navzdory vešk...