Ak patríte medzi milióny v komunite vývojárov, pravdepodobne ste už počuli o koncepcii riadenia verzií. Je to výkonný nástroj alebo systém, ktorý vám pomôže postarať sa o svoju prácu a umožní vám rýchlo sa pohybovať v súboroch, dokumentoch a iných zbierkach informácií týkajúcich sa vášho projektu. A na trhu existuje množstvo nástrojov pre takéto pracovné miesta, či už autorských alebo otvorených. Git je jedným z najpopulárnejších a najpoužívanejších systémov na správu verzií na svete a ohromujúci počet projektov sa spolieha na Git na správu verzií. Git je bezplatný a otvorený zdrojový distribuovaný systém riadenia verzií určený na sledovanie zmien v zdrojovom kóde počas vývoja softvéru.
Projekt Git je reprezentovaný dátovou štruktúrou nazývanou úložisko, v ktorej sú uložené všetky informácie súvisiace s projektom vrátane úplnej histórie projektu od jeho vzniku. Sleduje všetky zmeny vykonané v súboroch v priebehu času a vytvára časovú os, keď pokračujete v projekte. Repozitár sa zase skladá zo súboru jednotlivých snímok obsahu projektu - zbierky súborov a úložísk - nazývaných potvrdenia. Ak chcete zdieľať vývoj vášho projektu so svetom, musíte ho posunúť smerom k diaľkovému ovládaniu, ku ktorému máte prístup na zápis. Vaše lokálne pobočky nie sú automaticky synchronizované so vzdialenými úložiskami - musíte explicitne tlačiť pobočky, ktoré chcete zdieľať.
Git považuje svoje údaje skôr za súbor snímok, napríklad za mini súborový systém alebo verzie projektu s názvom commitits. Zakaždým, keď sa dopustíte alebo uložíte stav svojho projektu, Git v zásade urobí snímku toho, ako vaše súbory v súčasnosti vyzerajú, a uloží odkaz na túto snímku. Objekt odovzdania obsahuje metadáta pre každú zmenu vykonanú v úložisku, vrátane autora, potvrdenia, dátumu potvrdenia a správy denníka. Každé odovzdanie ukazuje na stromový objekt, ktorý zachytáva stav archívu v tom okamihu, keď sa odovzdanie vykonalo, všetko v jednom úplnom snímku. Pri vykonávaní zmien v kóde pozdĺž cesty vytvoríte hŕstku potvrdení - osobitné potvrdenie pre každú vykonanú zmenu. Git každému priradí jedinečný identifikátor, ktorý sleduje, čo, kedy a kto z vykonaných zmien.
Každý vývojár má svoj vlastný súkromný archív na sledovanie svojich zmien. Vykonáte zmeny lokálne a keď ste pripravení zdieľať ich s ostatnými vývojármi, posuniete ich späť do úložiska, ktoré všetci zdieľate. Commit uloží vykonané zmeny iba do lokálneho úložiska, ale nie do vzdialeného úložiska. Vaše potvrdenia sa automaticky nesynchronizujú so vzdialeným archívom - musíte explicitne poslať potvrdenia, ktoré chcete zdieľať. Keď použijete príkaz push, zmeny použijete na úložisko proti prúdu. Každý projekt s otvoreným zdrojom má svoj vlastný spôsob, ako akceptovať zmeny. Niektoré projekty používajú plne distribuovaný systém na správu verzií, kde iba jedna osoba môže tlačiť zmeny do hlavného úložiska, zatiaľ čo existuje zdieľaný model úložiska, kde všetci vývojári môžu tlačiť do zdieľaného úložiska..
- Tlačenie nastane po potvrdení. Záznamy Git commit a sledujú zmeny archívu s každým bodom odovzdania objektu stromu, ktorý zachytáva stav archívu v okamihu vykonania potvrdenia, všetko v jednom úplnom snímke. Commit však uloží zmeny iba do lokálneho úložiska, ale nie do vzdialeného úložiska. Git push aktualizuje vaše potvrdené zmeny a umožňuje ich poslať do vzdialeného úložiska, kde k nim majú prístup všetci vývojári. Keď použijete príkaz push, jednoducho aktualizuje vaše zmeny v protiprúdovom úložisku.
- Potvrdenia Git sú lokálne, čo znamená, že sa zaznamenávajú iba na stroji, na ktorom sa potvrdenia skutočne vyskytujú. Príkaz „git commit“ sa používa na povedzenie Gitu, aby uložil vaše zmeny do lokálneho úložiska, a pred použitím príkazu „git commit“ musíte konkrétne povedať Git, ktoré zmeny chcete zahrnúť do potvrdenia. Príkaz „git push“ môžete použiť na presun potvrdení v lokálnom úložisku do vzdialeného úložiska. Príkaz „push“ aktualizuje nové lokálne potvrdenia na vzdialenom serveri. Push vyžaduje dva argumenty: vzdialené meno (pôvod) a vetvu (hlavný).
V skratke, záväzok je základnou jednotkou zmeny v Gite. Na rozdiel od iných centralizovaných modelov riadenia verzií považuje spoločnosť Git svoje údaje skôr za súbor snímok, ktoré sa nazývajú potvrdenia. Sú ako snímka celého obsahu archívu, spolu so všetkými informáciami týkajúcimi sa projektu a vzťahu tohto stavu archívu k iným zaznamenaným stavom, keďže sa obsah časom vyvíjal. Objekt odovzdania obsahuje metadáta pre každú zmenu vykonanú v úložisku, vrátane autora, potvrdenia, dátumu potvrdenia a správy denníka. Potvrdenie však uloží zmeny iba do lokálneho úložiska, ale nie do vzdialeného úložiska. Git push aktualizuje vaše potvrdené zmeny a umožňuje ich poslať do vzdialeného úložiska, kde k nim majú prístup všetci vývojári.