Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Git představuje historii zásadně odlišným způsobem než centralizované systémy správy verzí (CVCS), jako je Team Foundation Version Control, Perforce nebo Subversion. Centralizované systémy ukládají samostatnou historii pro každý soubor v úložišti. Git ukládá historii jako graf snímků celého úložiště. Tyto snímky, označované jako commity v Gitu, mohou mít více rodičů a historie pak vypadá spíše jako graf než přímka. Tento rozdíl v historii je neuvěřitelně důležitý a je hlavním důvodem, proč uživatelé, kteří znají CVCS, najdou Git matoucí.
Základy historie commitů
Začněte jednoduchým příkladem historie: repo se třemi lineárními commity.
Commit A je nadřazeným objektem potvrzení B a potvrzení B je nadřazeným objektem potvrzení C. Tato historie vypadá velmi podobně jako CVCS. Šipka ukazující na commit C je větev. Větve jsou ukazatele na konkrétní komity, což je důvod, proč je větvení v Gitu tak lehké a snadné.
Klíčovým rozdílem v Gitu oproti CVCS je, že vývojář má vlastní úplnou kopii úložiště. Potřebují udržovat své místní úložiště synchronizované se vzdáleným úložištěm získáním nejnovějších potvrzení ze vzdáleného úložiště. Proveďte to tak, že stáhnete hlavní větev pomocí následujícího příkazu:
git pull origin main
Tím se sloučí všechny změny z hlavní větve ve vzdáleném úložišti, které Git ve výchozím nastavení pojmenuje jako origin. Tento příkaz přinesl jeden nový commit a hlavní větev v místním úložišti se přesune na tento commit.
Porozumět historii větví
Teď je čas provést změnu kódu. Při paralelní práci na různých funkcích je běžné mít více aktivních větví. Je to ve velkém kontrastu s CVCS, kde jsou nové větve těžké a zřídka vytvářené. Prvním krokem je přepnutí na novou větev pomocí následujícího příkazu:
git checkout -b cool-new-feature
Toto je zkratka, která kombinuje dva příkazy:
-
git branch cool-new-featurevytvořit větev -
git checkout cool-new-featurea začít pracovat na větvi
Dvě větve teď ukazují na stejný commit. Vezměme v úvahu, že na větvi cool-new-feature došlo k několika změnám ve dvou nových commitech, E a F.
Potvrzení jsou dostupná z cool-new-feature větve, protože byla potvrzena do této větve.
Teď, když je tato funkce hotová, je potřeba ji sloučit do hlavní větve. K tomu použijte následující příkaz:
git merge cool-new-feature main
Struktura grafu historie se zobrazí, když dojde ke sloučení. Git vytvoří nový commit, když se větev sloučí do jiné větve. Toto je potvrzení sloučení. Toto potvrzení sloučení neobsahuje žádné změny, protože nedošlo ke konfliktům. Pokud dojde ke konfliktům, potvrzení sloučení bude obsahovat změny potřebné k jejich vyřešení.
Historie v reálném světě
Tady je příklad historie Gitu, která se blíže podobá kódu v aktivním vývoji v týmu.
Tři lidé sloučují commity ze svých vlastních větví do main větve přibližně ve stejnou dobu.
Další kroky
Přečtěte si další informace o práci s historií Gitu v GitHubu a Azure Repos nebo zjednodušení historie protokolů Gitu.