Co je Git a proč ho používat?

Git je distribuovaný systém správy verzí — uchovává celou historii změn projektu. Každý vývojář má kompletní kopii repozitáře lokálně. Git není GitHub — Git je nástroj, GitHub je hostingová platforma.

Bez Gitu ❌S Gitem ✅
projekt_v1.zip, projekt_FINAL_v2.zip...Jeden adresář, celá historie přes git log
Strach experimentovatVětve — experimentujte bezpečně
Sdílení přes email nebo DiskPush/pull — synchronizace v sekundách
Kdo změnil co a kdy? Záhada.git blame, git log — kompletní audit
Spolupráce = chaosPull Requesty, code review, merge
⚙️
Instalace a nastavení: Stáhněte z git-scm.com. Po instalaci nastavte identitu: git config --global user.name "Vaše Jméno" a git config --global user.email "vas@email.cz". Ověřte: git --version.

Základní Git příkazy

Denní workflow se skládá z několika málo příkazů. Naučte se je zpaměti — pak přijdou automaticky.

# ── INICIALIZACE ──────────────────────────
$ git init               # nový repozitář
$ git clone URL          # stažení existujícího

# ── STAV A PŘEHLED ────────────────────────
$ git status             # co je změněno
$ git log --oneline      # stručná historie
$ git diff               # nestaged rozdíly

# ── STAGING A COMMIT ──────────────────────
$ git add .              # přidat vše
$ git add -p             # interaktivní výběr
$ git commit -m "popis"  # uložit snapshot
$ git commit --amend     # opravit poslední commit

# ── VRÁCENÍ ZMĚN ──────────────────────────
$ git restore .          # zahodit neuložené
$ git revert HEAD        # bezpečně vrátit commit
$ git stash              # odložit změny stranou
$ git stash pop          # vrátit odložené

Dobrá commit zpráva — Conventional Commits

# ❌ Špatně
git commit -m "oprava"
git commit -m "změny"

# ✅ Správně
git commit -m "fix: oprava přepočtu DPH u zahraničních objednávek"
git commit -m "feat: přidána filtrace produktů podle kategorie"
git commit -m "docs: aktualizace README s instalačními kroky"
git commit -m "refactor: extrahování validační logiky do helpers.js"

# Předpony: feat | fix | docs | style | refactor | test | chore

🎮 Interaktivní Git simulátor

📁 můj-projekt
main
2 modified files
Vítejte v Git simulátoru! Zkuste příkazy níže nebo napište vlastní. Napište 'help' pro seznam.
$

🧠 Kvíz: Jaký je rozdíl mezi git revert a git reset --hard?

Kapitola 2 / 8 Další: Větve →

Větve (Branches)

Větve jsou "paralelní vesmíry" vašeho projektu — experimentujte bez rizika poškození hlavní větve.

# Práce s větvemi
$ git branch                     # seznam větví
$ git checkout -b feature/login  # vytvoří + přepne
$ git switch -c feature/login    # moderní alternativa
$ git checkout main              # přepne zpět

# Merge — sloučení větví
$ git checkout main
$ git merge feature/login        # sloučí do main
$ git branch -d feature/login    # smaže větev

# Rebase — čistší historie
$ git rebase main                # přebazuje na main
$ git rebase -i HEAD~3           # squash 3 commitů
Git Flow — větvení strategie main ●─────────────────────●─────────────────────● v1.0 v1.1 v1.2 feat/A ●────●────●──╯ start commit merge↑ feat/B ●────────●────────●──╯ start commit merge↑ hotfix ●────●──╯ bug! fix→merge↑
Kapitola 3 / 8 Další: GitHub →

GitHub workflow

GitHub je nejrozšířenější platforma pro hostování Git repozitářů. Přidává Pull Requesty, Issues, Actions (CI/CD) a Pages.

# Propojení s GitHubem
$ git remote add origin https://github.com/user/repo.git
$ git push -u origin main     # první push

# Denní synchronizace
$ git pull                    # stáhnout změny
$ git push                    # nahrát commity

# Řešení merge konfliktu
$ git pull                    # ← konflikt!
# Otevřete soubor, najděte značky:
<<<<<<< HEAD
  vaše verze
=======
  jejich verze
>>>>>>> origin/main
# Upravte, odstraňte značky, pak:
$ git add . && git commit -m "fix: merge conflict"

Pull Request workflow

  1. Vytvořte feature větev: git checkout -b feat/nova-funkce
  2. Implementujte, commitujte průběžně
  3. Pushněte: git push origin feat/nova-funkce
  4. Na GitHubu otevřete Pull Request
  5. Kolega provede code review
  6. Po schválení: Merge PR do main
  7. Smažte větev: git branch -d feat/nova-funkce

.gitignore — co neverzovat

# Vždy přidejte do kořene projektu
node_modules/    # npm závislosti (velké, regenerovatelné)
.env             # tajné proměnné (API klíče, hesla!)
.DS_Store        # macOS systémové soubory
dist/            # build výstup
*.log            # logy
.idea/           # IDE soubory

🧠 Kvíz: Proč nikdy nedáváme soubor .env do Gitu?

Kapitola 4 / 8 Další: npm →

npm & Node.js ekosystém

npm (Node Package Manager) je největší ekosystém open-source balíčků — přes 2 miliony. Node.js přinesl JavaScript na server.

# Inicializace projektu
$ npm init -y              # vytvoří package.json

# Instalace balíčků
$ npm install axios        # přidá do dependencies
$ npm install -D vite      # přidá do devDependencies
$ npm install              # instaluje z package.json
$ npm uninstall axios      # odstraní balíček
$ npm audit fix            # opraví bezpečnostní chyby

# Spouštění skriptů
$ npm run dev              # dev server
$ npm run build            # produkční build

# Vite — moderní dev server
$ npm create vite@latest moje-app -- --template vanilla
$ cd moje-app && npm install && npm run dev
# → http://localhost:5173 (live reload)
🚀
Nejužitečnější npm balíčky pro začátek: axios (HTTP klient), date-fns (data a časy), zod (validace schémat), vite (dev server + bundler), prettier (formátování), eslint (linting).
Kapitola 5 / 8 Další: VS Code →

VS Code — tipy pro produktivitu

Nepostradatelná rozšíření

  • Prettier — automatické formátování při uložení
  • ESLint — upozorní na chyby v JS
  • GitLens — git blame a history v editoru
  • Live Server — lokální server s live reload
  • Auto Rename Tag — přejmenuje párový HTML tag
  • CSS Peek — go-to-definition pro CSS třídy

Nejdůležitější klávesové zkratky

ZkratkaAkce
Ctrl+Shift+PCommand Palette — přístup ke všem příkazům
Ctrl+PRychlé otevření souboru
Ctrl+`Otevření integrovaného terminálu
Alt+↑/↓Přesun řádku nahoru/dolů
Ctrl+DVybrat další výskyt — multi-cursor
Ctrl+/Zakomentovat/odkomentovat
F2Přejmenovat symbol v celém projektu
F12Go to definition
Ctrl+Shift+FHledání v celém projektu

Doporučené settings.json

{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.tabSize": 2,
  "editor.wordWrap": "on",
  "editor.bracketPairColorization.enabled": true,
  "files.autoSave": "onFocusChange"
}

🧠 Kvíz: Co je rozdíl mezi dependencies a devDependencies v package.json?

Kapitola 6 / 8 Další: Cvičení →

Praktické cvičení — Git simulátor

Projděte kompletní workflow: inicializace → první commit → feature větev → merge. Použijte simulátor níže.

📋
Úkol: V simulátoru proveďte: (1) git status, (2) git add ., (3) git commit -m "feat: homepage", (4) git checkout -b feature/kontakt, (5) git commit -m "feat: kontaktní stránka", (6) git checkout main, (7) git merge feature/kontakt.
🏋️ Procvičovací terminál
main
2 modified files
Procvičovací Git terminál připraven. Projděte kroky z návodu výše.
$
🏅

Odznak: Git Master

Zvládáte Git workflow, GitHub, npm ekosystém a VS Code produktivitu.

Kapitola 7 / 8 Další: Taháček →

Taháček — Git cheat sheet

Denní workflow

$ git pull                          # začněte vždy stažením
$ git checkout -b feat/nova-funkce  # nová větev
# ... programujte ...
$ git add . && git commit -m "feat: popis"
$ git push origin feat/nova-funkce  # push + PR

Zachraňovací příkazy

$ git stash                # odložit změny
$ git stash pop            # vrátit odložené
$ git revert HEAD          # bezpečně vrátit commit
$ git restore .            # zahodit neuložené
$ git log --oneline -10    # posledních 10 commitů

Zlatá pravidla

  • ✅ Vždy git pull před začátkem práce
  • ✅ Malé, časté commity s popisnou zprávou
  • ✅ Feature větve — nikdy přímo do main
  • .gitignore hned na začátku projektu
  • ✅ Nikdy .env soubory do Gitu
  • git push --force na sdílené větve
  • node_modules do repozitáře
Lekce 10 dokončena! Lekce 11: SEO & Performance →