Vysvětlení historie Gitu
Git představuje historii základním způsobem než centralizované systémy pro správu verzí (CVCS), jako jsou Správa verzí Team Foundation, 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 potvrzení v Gitu, můžou mít více nadřazených prvků a vytvořit historii, která místo přímky vypadá jako graf. 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 potvrzení
Začněte jednoduchým příkladem historie: úložiště se třemi lineárními potvrzeními.
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 potvrzení C je větev. Větve jsou ukazatele na konkrétní potvrzení, což je důvod, proč je větvení v Gitu tak jednoduché a jednoduché.
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ě. Uděláte to tak, že přetáhne 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é názvy Gitu origin
ve výchozím nastavení mají. Tato žádost přinesla jedno nové potvrzení a hlavní větev v místním úložišti se přesune na toto potvrzení.
Principy historie 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 rezervovat 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-feature
vytvoření větvegit checkout cool-new-feature
a začít pracovat ve větvi
Dvě větve teď ukazují na stejné potvrzení. Předpokládejme, že ve větvi existuje několik změn cool-new-feature
ve dvou nových potvrzeních, E a F.
Potvrzení jsou dostupná cool-new-feature
pro větev, 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é potvrzení při sloučení větve 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.
Existují tři lidé, kteří sloučí potvrzení 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.