Git umožňuje programátorom a vývojárom spolupracovať na projektoch a udržiavať prehľad o zmienkach v kóde. Je to distribuovaný systém, čo znamená, že každý vývojár má plnú kópiu repozitára na svojom lokálnom stroji. Git podporuje vetvenie (branching), zlučovanie (merging) a sledovanie histórie zmien.
Základné pojmy spojené s GIT:
- Repozitár (Repository): Repozitár je miesto, kde sa ukladá celá história projektu vrátane všetkých zmien, vetiev, značiek a súborov. Git repozitár môže byť buď lokálny alebo vzdialený, kde vzdialený repozitár umožňuje viacerým ľuďom spolupracovať na projekte.
- Komity (Commits): Commit je základnou jednotkou zmien v Git repozitári. Reprezentuje jednu sadu zmien v súboroch a je označený jedinečným identifikátorom. Každý commit obsahuje správu o zmene a odkaz na predchádzajúci commit, čím sa vytvára stromová štruktúra zmien v repozitári.
- Vetvy (Branches): Vetvy umožňujú vývojárom pracovať na rôznych verziách kódu nezávisle od hlavnej vývojovej vetvy (zväčša označovanej ako "master"). Vetvy umožňujú paralelný vývoj a experimentovanie s novými funkciami alebo opravami chýb, pričom sa zachováva nezávislosť a oddelenie od hlavného kódu.
- Zlučovanie (Merging): Zlučovanie sa používa na kombinovanie zmien z jednej vetvy do inej. Keď sú vetvy dostatočne testované a pripravené na spojenie, môže sa vykonať operácia zlučovania, pričom sa zmeny z jednej vetvy integrujú do druhej.
- Vzdialený repozitár (Remote Repository): Vzdialený repozitár je miesto, kde je umiestnený zdieľaný repozitár, na ktorý majú prístup viacerí vývojári. Pomocou vzdialeného repozitára môžu tímy spolupracovať, synchronizovať svoje zmeny a zdieľať svoj kód.
- Vývojový cyklus (Workflow): Git umožňuje rôzne pracovné toky (workflows) pre spoluprácu a správu kódu. Medzi najpoužívanejšie workflow patrí centralizovaný workflow, vetvový workflow (branching workflow) a forking workflow.
Git je dnes jedným z najpoužívanejších systémov pre správu verzií a poskytuje programátorom a vývojárom mocný nástroj na sledovanie zmien v kóde a správu vývojových projektov. Jeho distribuovaná povaha, schopnosť vetvenia a zlučovania, a schopnosť práce s vzdialenými repozitármi ho robia obľúbeným nástrojom v oblasti softvérového vývoja.