Jak používat sloučení git

Dec 31, 2024
Programming

Git používá větve k izolaci vývojových toků, aby se zabránilo znečištění stabilního uvolňování. Přivedení práce v větvi do hlavního proudu znamená sloučení větví. Takto to děláte.

Co je sloučení v Git?
Příprava na sloučení pobočky v Git
Provedení sloučení
Provádění rychlého sloučení vpřed v Git
Jak vyřešit sloučení konfliktů v git
Všechno se nakonec spojí

Co je sloučení v Git?

Git byl navržen tak, aby byl větvení jednoduchý a rychlý. Na rozdíl od jiných systémů řízení verzí je větvení na Git triviální záležitostí. Zejména u projektů s více vývojáři je větvení jedním z hlavních organizačních nástrojů Git.

Větve sandbox nové vývojové úsilí, aby bylo možné kód upravit nebo přidat bez ovlivnění kódu v jiných pobočkách, zejména v hlavní nebo hlavní větvi. To obvykle obsahuje stabilní verzi vaší kódové základny.

Izolace těchto změn od verze vaší stabilní kódu dává dokonalý smysl. Dříve nebo později však bude nový kód testován, přezkoumán a razítko s kaučukem, aby byl převrácen do hlavní větve. V tomto okamžiku musíte sloučit svou větev do hlavní větve.

Ve skutečnosti mohou pobočky mít sub-větve, takže můžete sloučit svou pobočku do jiné větve místo hlavní větve. Jen si pamatujte, že sloučení vždy vezměte jednu větev a sloučte ji do a cílová Větev, ať už je to cokoli. Pokud chcete sloučit svou hlavní pobočku do jiné větev, můžete to dokonce udělat.

Stejně jako většina akcí v GIT provádíte sloučení v místním úložišti a posunete je do svého vzdáleného úložiště.

Příprava na sloučení pobočky v Git

Máme malý vývojový projekt s místním úložištěm GIT a vzdáleným úložištěm GIT. Vytvořili jsme větev s názvem „BugFix14“ z pobočky „Master“ a pracovali na řešení chyby.

Tato práce je dokončena a testovali jsme náš kód. Všechno to funguje podle očekávání. Chceme tyto změny hodit do hlavní větve, takže naše oprava je součástí dalšího vydání softwaru.

Než provedeme sloučení, je třeba provést malou přípravu. Musíme se ujistit, že cílová větev - v tomto případě „hlavní“ větev - a větev, do které se do ní spojíme, jsou aktuální.

  • Na Branch Bugfix14 : Toto je naše současná pobočka.
  • Vaše pobočka je aktuální s „Origin/Bugfix“ : Pobočka v našem místním úložišti má stejnou historii potvrzení jako pobočka ve vzdáleném úložišti. To znamená, že jsou identické.
  • Nic spáchání Ve stagingové oblasti nejsou žádné změny, které nebyly spáchány.
  • Pracovní strom čistý : V pracovním adresáři neexistují žádné nestavené změny.

Všichni z nich naznačují, že větev je aktuální a my jsme jasní pokračovat. Pokud by některá z nich naznačila, že změny existují, musíme je nastoupit, zavázat je a tlačit na dálkové ovladače. Pokud na těchto souborech pracoval někdo jiný, možná budeme muset stáhnout jejich změny ze vzdáleného úložiště.

Zkontrolujte pobočku, kterou se spojíme do zjednodušení procesu sloučení. Rovněž nám umožňuje ověřit, že je aktuální. Pojďme se podívat na hlavní pobočku.

Získáme stejná potvrzení, že „hlavní“ větev je aktuální.

PŘÍBUZNÝ: Jak vybrat GIT Workflow & amp; Větvení modelu, který je pro váš tým pravý

Provedení sloučení

Větev „BugFix14“ byla rozvětvena z větev „Master“. Po vytvoření pobočky „BugFix14“ došlo k zavěšení větev „Master“. Došlo k několika závazkům na pobočce „Bugfix14“.

Ujistili jsme se, že naše dvě pobočky jsou aktuální, a zkontrolovali jsme „hlavní“ pobočku. Můžeme vydat příkaz sloučit větev „BugFix14“ do větev „Master“.

Sloučení se koná. Větev „BugFix14“ stále existuje, ale nyní byly změny, které byly provedeny v této větvi, sloučeny do „hlavní“ větev.

V tomto případě příkaz sloučení provádí a Třícestné sloučení . Existují pouze dvě pobočky, ale jsou zapojeny tři závazky. Jsou hlavou obou poboček a třetího doručení, které představuje samotnou sloučeninou akci.

K aktualizaci našeho vzdáleného úložiště můžeme použít Git Push příkaz.

Někteří lidé raději odstraní boční větve, jakmile je sloučí. Jiní se starají o jejich zachování jako záznam o skutečné historii rozvoje projektu.

Pokud chcete pobočku smazat, můžete tak učinit pomocí větev git příkaz s -D (Odstranit) možnost.

Na Odstranit větev Ve vzdáleném úložišti použijte tento příkaz:

Budete mít lineární historii spáchání, ale nebude to skutečná historie.

PŘÍBUZNÝ: Jak smazat pobočky Git na místních a vzdálených repozitářích

Provádění rychlého sloučení vpřed v Git

Pokud jste se nezavázali k větev „Master“, vaše historie bude vypadat takto. Bude to také hledat, pokud máte Reased Vaše rozvojová větev tak, aby byla připojena ke konci pobočky „Master“.

Vzhledem k tomu, že v pobočce „Master“ neexistují žádné závazky, sloučit pobočku „Bugfix15“, vše, co musí udělat, je nasměrovat ukazatel „hlavní“ hlavy na poslední odběr pobočky „BugFix15“.

Git provede rychlé sloučení vpřed Kdykoli to může . Pokud se zavazují do „hlavní“ větev, znamenají, že sloučení rychle vpřed není možné, Git použije a Třícestné sloučení .

Nemůžeš platnost Rychlé sloučení vpřed-to nemusí konec konců možné-ale můžete prohlásit, že to bude rychlé sloučení vpřed nebo nic. Existuje možnost, která dává pokyn GIT, aby používal sloučení rychle vpřed, pokud to dokáže, ale ne udělat třícestné sloučení, pokud to nedokáže. Možnost je -pouze (pouze vpřed sloučení).

Tím se sloučí větev „BugFix15“ do větev „Master“, ale pouze pokud je možné sloučit rychle vpřed.

V tomto případě došlo k závazkům „Master“ pobočky, takže rychlé sloučení vpřed není možné.

Jak vyřešit sloučení konfliktů v git

Pokud byly v obou větvích změněny stejné části stejného souboru, nelze větve sloučit. K vyřešení konfliktních úprav je nutná lidská interakce.

Zde jsme provedli změny v souboru s názvem „Rot.c“ v větvi s názvem „BugFix17“, kterou chceme sloučit s pobočkou „Master“. Ale „rot.c“ se také změnilo v pobočce „Master“.

Když se to snažíme sloučit, dostaneme varování, že existují konflikty. GIT uvádí konfliktní soubory a říká nám, že sloučení selhalo. Mohli bychom úplně ustoupit pomocí --přerušit volba:

Řešení sloučení však není tak děsivé, jak to zní. Git odvedl nějakou práci, aby nám pomohl. Pokud upravíme jeden z konfliktních souborů - v našem případě máme pouze jeden - najdeme pro nás zdůrazněné konfliktní sekce kódu.

Každý konflikt je ohraničen sedmi méně než znaky “ & lt; & lt; & lt; & lt; “A sedm znaků větších než„ & gt; „Se sedmi rovnými značkami“ ======== " mezi nimi.

  • Kód nad rovnými značkami je z větev, kterou sloučíte do .
  • Kód pod znakem rovného je kód z větev, kterou se snažíte spojit .

Můžete snadno hledat jednu ze sad sedmi znaků a přejít od konfliktu k konfliktu prostřednictvím vašeho souboru. Pro každý konflikt si musíte vybrat, jakou sadu úprav si uchováváte. Musíte upravit kód, který odmítáte, a sedmimístné řádky, které GIT přidal.

Budeme zabránit kódu z pobočky „BugFix17“. Po úpravách vypadá náš soubor takto.

Nyní můžeme pokračovat s sloučením. Ale všimněte si, že používáme spáchat příkaz k tomu, ne spojit příkaz.

Změnu se dopustíme stanovením souboru a jeho spácháním jako obvykle. Před provedením konečného potvrzení zkontrolujeme stav.

Sloučení je kompletní. Nyní to můžeme posunout do našeho vzdáleného úložiště.

PŘÍBUZNÝ: Jak opravit, upravit nebo Undo Git Shaje (měnící se historie git)

Všechno se nakonec spojí

Všechny větve je třeba nakonec sloučit, aby se změny v nich nebyly osiřelé a zapomenuté.

Sloučení poboček je snadné, ale řešení konfliktů se může komplikovat v rušných, větších týmech. Řešení konfliktů může vyžadovat vstup od každého vývojáře, aby vysvětlil, co jejich kód dělá a proč provedli změny. Musíte to pochopit, než budete moci učinit informované rozhodnutí o tom, které úpravy si ponechat.

  • Jak přejmenovat větev v Git
  • Jak prohlédnout vzdálenou větev GIT
  • Jak skrývat změny v Git
  • Jak přepínat větve v GitHubu
  • Git Rebase: Vše, co potřebujete vědět
  • OnePlus 11 je tady, ale s hrubým startem
  • Microsoft Edge získává chatu AI a nový pohled na Windows
  • Nejlepší sluchátko pro fanoušky iPhone právě zasáhlo jejich nejnižší cenu

Programming - Nejoblíbenější články

Jak přejmenovat větev v Git

Programming Dec 19, 2024

Větvení je triviální cvičení v Git. Bohužel, triviální úkoly jen zřídka získají náležitou pozornost a dochází k chybám. Pokud jste nesprávně pojmenovali pobočku, bude muse..


Kategorie