DAT 14 • Verzovací systémy: Git a GitHub

Verzovací systémy (Git & GitHub), commit, branch, merge, konflikty, remote, workflow

Formát: 30 min praktická úloha v terminálu (Git Bash / PowerShell), 15 min obhajoba + teorie. Praktika je workflow s vytvořením repa, větve a vyřešením konfliktu. Podle leaku 2026 jde o nejlehčí DAT otázku, takže ji buď zvládneš plynule, nebo to bude vypadat divně.


Část 1: Teorie

1.1 Co je verzovací systém (VCS)

Version Control System je nástroj, který zaznamenává změny v souborech v průběhu času, aby ses k libovolné starší verzi mohl vrátit.

Bez VCS:

projekt_v1.zip
projekt_v2.zip
projekt_final.zip
projekt_FINAL_OPRAVENO.zip
projekt_OPRAVDU_FINAL_v2.zip

S VCS: jedna složka projektu + celá historie schovaná v .git/.

Proč VCS používat

Důvod Co umožňuje
Historie Vrátit se k libovolné předchozí verzi
Spolupráce Více lidí na stejném projektu bez přepisování
Experimentování Bezpečně zkoušet nové funkce ve vedlejších větvích
Záloha Repo na serveru je záloha celé historie
Audit git blame: kdo a kdy co změnil
Bisect Najít commit, který něco rozbil (binární vyhledávání)

1.2 Centralizované vs distribuované VCS

Existují dva přístupy.

Centralizované (CVCS): SVN, CVS, Perforce

                   [SERVER: jediná historie]
                       /     |      \
                  pull/push  ↕       ↕
                    /        |        \
               [Klient 1] [Klient 2] [Klient 3]
               jen aktuální verze, ne historie

Vlastnosti: