Obsah
Verzování kódu a Git
Verzování kódu (Version Control System – VCS) je systém, který zaznamenává změny v souborech v průběhu času. Umožňuje programátorům pracovat na stejném kódu současně, spravovat různé verze aplikace (např. stabilní verze vs. vývojová) a dohledat, kdo, kdy a proč provedl konkrétní změnu.
1. Typy systémů pro správu verzí
Lokalizované (Local VCS)
Jednoduché databáze v počítači uživatele. Riziko ztráty dat při poruše disku.
Centralizované (CVCS)
Jeden centrální server (např. Subversion - SVN), kde jsou uloženy všechny verze. Uživatelé si stahují pouze aktuální verzi.
- Nevýhoda: Pokud server vypadne, nikdo nemůže ukládat změny ani prohlížet historii.
Distribuované (DVCS)
Každý uživatel má v počítači kompletní kopii celého projektu včetně celé jeho historie. Git je nejznámějším zástupcem.
- Výhoda: Práce je možná offline, operace jsou bleskové a systém je vysoce odolný proti ztrátě dat.
2. Co je to Git?
Git vytvořil Linus Torvalds (tvůrce Linuxu) v roce 2005. Je to open-source nástroj, který se stal celosvětovým standardem pro vývoj softwaru.
Tři stavy souboru v Gitu:
- Modified: Soubor byl změněn, ale změna ještě není uložena v historii.
- Staged (Index): Soubor je označen k uložení do příští verze (příprava na „commit“).
- Committed: Změny jsou bezpečně uloženy v lokální databázi Gitu.
—
3. Základní pojmy a příkazy
| Pojem | Popis | Příkaz |
|---|---|---|
| Repository (Repo) | Adresář s projektem sledovaný Gitem. | git init |
| Clone | Stažení existujícího projektu z internetu. | git clone [URL] |
| Commit | „Snímek“ stavu projektu v daný čas. | git commit -m „Zpráva“ |
| Branch (Větev) | Izolovaná linka vývoje (např. pro novou funkci). | git branch [název] |
| Merge | Sloučení změn z jedné větve do druhé. | git merge [název] |
| Push / Pull | Odeslání změn na server / stažení změn ze serveru. | git push / git pull |
4. Větvení (Branching) a spolupráce
Nejsilnější stránkou Gitu je práce s větvemi. Vývojář si vytvoří vlastní větev (např. feature-login), kde pracuje, zatímco hlavní větev (main nebo master) zůstává stabilní.
Pull Request (Merge Request)
Proces, kdy vývojář požádá o sloučení své větve do hlavní větve. Ostatní členové týmu mohou kód zkontrolovat (Code Review), napsat připomínky a teprve po schválení se kód sloučí.
5. Platformy pro hostování Gitu
Zatímco Git je samotný nástroj (běžící v příkazové řádce), existují webové služby, které k němu přidávají grafické rozhraní a nástroje pro týmovou spolupráci:
- GitHub: Nejpopulárnější platforma, domov většiny open-source projektů.
- GitLab: Silný nástroj s důrazem na CI/CD automatizaci.
- Bitbucket: Často používaný ve firmách (integrace s nástrojem Jira).
6. Strategie verzování (Git Flow)
V profesionálních týmech se používají pravidla, jak větve pojmenovávat a kdy je slučovat:
- Main: Vždy stabilní kód připravený k vydání.
- Develop: Místo, kde se integrují nové funkce.
- Hotfix: Větve pro okamžitou opravu kritických chyb v produkci.
Související články:
Tagy: dev git github version_control programming team_collaboration devops
