Co je Git a proč ho používat

Co je Git
Git je distribuovaný verzovací systém, který sleduje změny souborů a umožňuje týmům efektivně spolupracovat na stejném projektu. Vytvořil ho Linus Torvalds v roce 2005 pro vývoj jádra Linuxu a od té doby se stal de facto průmyslovým standardem. Ať už pracujete sami na malém projektu, nebo v týmu sta vývojářů, Git vám umožňuje sledovat každou změnu, vracet se k předchozím verzím a pracovat na více funkcích paralelně bez konfliktů.
Na rozdíl od starších systémů jako SVN je Git distribuovaný, což znamená, že každý vývojář má na svém počítači kompletní kopii celé historie projektu. To umožňuje práci bez připojení k internetu, rychlejší operace, protože většina věcí se provádí lokálně, a větší odolnost vůči ztrátě dat, protože každý klon je kompletní zálohou. Porozumění Gitu je dnes základní dovedností každého programátora a webového vývojáře.
Proč používat Git
Sledování změn
Bez verzovacího systému se programátoři spoléhají na ruční kopírování souborů. Pro ukládání projektů zvažte zálohovací prostor s názvy jako web-v2-final-kopie-2.zip. Tento přístup je neudržitelný, protože brzy přestane být možné poznat, která verze obsahuje které změny. Git automaticky zaznamenává každou změnu s informací o tom, kdo ji provedl, kdy a proč. Můžete vidět kompletní historii projektu, porovnat libovolné dvě verze a přesně vědět, která řádka kódu byla v daném okamžiku změněna.
Každý commit v Gitu je snímkem stavu projektu v určitém okamžiku se zprávou popisující, co se změnilo a proč. To je k nezaplacení, když o měsíce později potřebujete pochopit, proč byla změna provedena, nebo najít commit, který zanesl chybu. Příkaz git blame ukazuje, kdo naposledy upravil každou řádku kódu, a urychluje hledání osob odpovědných za konkrétní část kódu.
Větvení a paralelní práce
Větve v Gitu jsou jednou z nejmocnějších funkcí. Větev je nezávislá linie vývoje, která umožňuje pracovat na nové funkci bez ovlivnění hlavního kódu. Můžete vytvořit větev pro každou opravu chyby nebo novou funkci, pracovat na ní, jak dlouho je potřeba, a sloučit ji s hlavní větví teprve tehdy, když je vše otestované a připravené. Pokud se funkce ukáže jako špatný nápad, jednoduše větev smažete bez jakýchkoli následků pro zbytek projektu.
V týmu může každý programátor pracovat na své větvi, aniž by se musel obávat přepsání práce někoho jiného. Git automaticky slučuje změny z různých větví a ve většině případů tak činí bez zásahu. Když dojde ke konfliktu, Git jasně označí problematické části a požádá programátora o ruční vyřešení konfliktu. To je mnohem lepší než alternativní scénář, kdy dva programátoři upraví stejný soubor a jeden bez varování přepíše práci druhého.
Záloha a obnova
Každý Gitový repozitář na vzdáleném serveru jako GitHub slouží jako záloha celého projektu s kompletní historií. I když vám selže pevný disk, můžete repozitář během několika sekund naklonovat na nový počítač a pokračovat v práci přesně tam, kde jste přestali. Git uchovává každou verzi každého souboru, který kdy byl commitnut, což znamená, že můžete libovolný soubor vrátit do libovolného předchozího stavu. To je životní pojistka každého projektu.
Základní příkazy Gitu
Inicializace a konfigurace
Začátek s Gitem vyžaduje instalaci a základní konfiguraci. Na většině distribucí Linuxu je Git již nainstalovaný nebo se nainstaluje pomocí apt install git nebo dnf install git. Na macOS přichází s Xcode Command Line Tools. Po instalaci nastavte jméno a e-mail používané v commitech pomocí git config global user.name "Vaše Jméno" a git config global user.email vy@email.cz. Tyto informace se zaznamenávají u každého commitu.
Nový repozitář vytvoříte pomocí git init v adresáři projektu. Tím se vytvoří skrytá složka .git obsahující kompletní historii a konfiguraci repozitáře. Případně můžete naklonovat existující repozitář pomocí git clone URL, čímž se projekt s celou historií stáhne do vašeho počítače. Soubor .gitignore definuje, které soubory má Git ignorovat, například adresář node_modules, soubory .env s tajnými údaji a zkompilované binární soubory.
Každodenní příkazy
Příkaz git status zobrazuje aktuální stav repozitáře — které soubory jsou upravené, které jsou přidané do staging area a které nejsou sledované. Používejte ho často, abyste měli přehled o tom, co se děje. Git add přidává soubory do staging area, což je příprava na commit. Jednotlivé soubory můžete přidat pomocí git add nazevsouboru.js nebo všechny upravené soubory pomocí git add ., ale buďte opatrní, abyste nepřidali nechtěné soubory.
Příkaz git commit vytváří snímek aktuálního stavu staging area s popisnou zprávou. Dobrá zpráva commitu je krátká, ale výstižná, například „Přidat validaci pole e-mailu v kontaktním formuláři.“ Konvencí je psát zprávy v rozkazovacím způsobu, jako byste popisovali, co commit dělá. Git log zobrazuje historii commitů s hash identifikátory, autory, daty a zprávami. Použijte git log oneline pro kompaktní přehled nebo git log graph pro vizuální zobrazení větví.
Práce s větvemi
Vytvoření nové větve: git branch nazev-vetve vytvoří větev, ale nepřepne se na ni. Git checkout nazev-vetve přepíná na existující větev. Kombinace git checkout -b nazev-vetve vytvoří novou větev a okamžitě se na ni přepne, což je nejběžnější workflow. Moderní Git nabízí také příkaz git switch, který je intuitivnější alternativou k checkout při práci s větvemi. Větve pojmenovávejte popisně, například feature/online-objednavky nebo fix/chyba-prihlaseni.
Slučování větví se provádí pomocí git merge nazev-vetve, když jste na větvi, do které chcete změny sloučit. Typický workflow je: přepnout se na hlavní větev, poté spustit sloučení vaší feature větve. Pokud nejsou žádné konflikty, Git kód automaticky sloučí. Pokud konflikty jsou, Git označí problematické části v souborech speciálními značkami a vy ručně vyberete, které změny zachovat. Po vyřešení konfliktů výsledek commitnete.
GitHub a vzdálené repozitáře
GitHub je nejpopulárnější platformou pro hosting Gitových repozitářů s více než 100 miliony uživatelů. Kromě ukládání kódu GitHub nabízí sledování problémů, workflow pull requestů, CI/CD s GitHub Actions, wiki stránky a mnoho dalšího. Mezi alternativní platformy patří GitLab, který nabízí self-hosting, a Bitbucket, který se dobře integruje s nástroji Atlassian jako Jira.
Příkaz git remote add origin URL propojuje lokální repozitář se vzdáleným na GitHubu. Git push odesílá vaše commity na vzdálený server, kde je ostatní členové týmu mohou vidět a stáhnout. Git pull stahuje nejnovější změny ze vzdáleného repozitáře a slučuje je s vaším lokálním kódem. Git fetch změny stahuje, ale automaticky je neslučuje, čímž vám dává možnost je před sloučením zkontrolovat.
Workflow pull requestů
Pull request neboli PR je mechanismus pro revizi kódu před sloučením s hlavní větví. Programátor vytvoří větev, commitne změny, pushne na GitHub a otevře PR s popisem změn. Ostatní členové týmu kód zrevidují, zanechají komentáře a návrhy. Teprve po schválení jedním nebo více recenzenty se PR sloučí s hlavní větví. Tento workflow zajišťuje kvalitu kódu a sdílení znalostí v týmu, protože každý programátor vidí, co dělají ostatní.
Dobrý PR má jasnou zprávu popisující, co se změnilo a proč, rozumnou velikost, protože revize PR s tisíci řádkami kódu je nemožná, a automatické kontroly jako testy a linting probíhající přes CI/CD. GitHub Actions může automaticky spouštět testy při každém pushi a zobrazit výsledek u PR, čímž zabraňuje sloučení kódu, který testy rozbíjí.
Git v deployment workflow
Git je základem moderního nasazení, zejména na VPS serverech. Nejjednodušším přístupem je ruční nasazení, kdy se na serveru spustí git pull pro stažení nejnovějších změn. To je dostatečné pro malé weby, ale nedá se dobře škálovat a je náchylné k lidským chybám. Lepším přístupem je automatizované nasazení, kdy push do určité větve jako main automaticky spustí nasazení přes CI/CD pipeline.
Typický automatizovaný workflow vypadá takto: programátor pushne kód na GitHub, GitHub Actions spustí testy a build, pokud vše projde, kód se automaticky nasadí na staging server pro testování a po schválení se nasadí do produkce. Tento přístup eliminuje možnost zapomenout spustit testy nebo nasadit špatnou verzi. V BeoHostingu podporujeme nasazení přes Git pro všechny hostingové balíčky s automatizací přes webhooky.
Gitové strategie pro týmy
Git Flow je populární strategie větvení, která definuje role pro různé větve: main pro produkční kód, develop pro vývoj, feature větve pro nové funkce, release větve pro přípravu verzí a hotfix větve pro urgentní opravy v produkci. Tato strategie je důkladná, ale pro malé týmy může být příliš složitá. Trunk-based development je jednodušší alternativou, kdy všichni programátoři commitují přímo do hlavní větve s krátkými feature větvemi trvajícími den nebo dva.
Bez ohledu na strategii je několik pravidel univerzálních: nikdy necommitujte přímo do hlavní větve, vždy používejte PR pro revizi, pište popisné zprávy commitů, udržujte commity malé a zaměřené na jednu změnu a nikdy necommitujte tajné údaje jako hesla nebo API klíče. Pokud omylem commitnete tajný údaj, ihned jej změňte, protože i po smazání z historie je možné, že si jej už někdo stáhl.
Závěr
Git je nepostradatelným nástrojem pro každého, kdo pracuje s kódem, ať už jste samostatný vývojář, nebo součást velkého týmu. Investice do učení Gitu se mnohonásobně vyplatí díky lepší organizaci, bezpečnosti kódu a efektivnější týmové spolupráci. Začněte se základními příkazy, používejte GitHub pro hosting repozitářů a postupně zavádějte pokročilejší workflow. V BeoHostingu podporujeme nasazení přes Git pro všechny hostingové balíčky, což vám umožňuje nasazovat rychle a spolehlivě přímo z vašeho repozitáře.
BeoHosting Team
10+ let zkušeností — Specialisté na webhosting a infrastrukturu
- Web Hosting
- WordPress Hosting
- VPS
- Dedicated Serveri
- Domeni
- SSL
- cPanel
- LiteSpeed
- Linux administracija
- DNS
Naposledy aktualizováno: