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 experimentovat | Větve — experimentujte bezpečně |
| Sdílení přes email nebo Disk | Push/pull — synchronizace v sekundách |
| Kdo změnil co a kdy? Záhada. | git blame, git log — kompletní audit |
| Spolupráce = chaos | Pull Requesty, code review, merge |
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
🧠 Kvíz: Jaký je rozdíl mezi git revert a git reset --hard?
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ů
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
- Vytvořte feature větev:
git checkout -b feat/nova-funkce - Implementujte, commitujte průběžně
- Pushněte:
git push origin feat/nova-funkce - Na GitHubu otevřete Pull Request
- Kolega provede code review
- Po schválení: Merge PR do main
- 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?
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)
axios (HTTP klient), date-fns (data a časy), zod (validace schémat), vite (dev server + bundler), prettier (formátování), eslint (linting).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
| Zkratka | Akce |
|---|---|
Ctrl+Shift+P | Command Palette — přístup ke všem příkazům |
Ctrl+P | Rychlé otevření souboru |
Ctrl+` | Otevření integrovaného terminálu |
Alt+↑/↓ | Přesun řádku nahoru/dolů |
Ctrl+D | Vybrat další výskyt — multi-cursor |
Ctrl+/ | Zakomentovat/odkomentovat |
F2 | Přejmenovat symbol v celém projektu |
F12 | Go to definition |
Ctrl+Shift+F | Hledá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?
Praktické cvičení — Git simulátor
Projděte kompletní workflow: inicializace → první commit → feature větev → merge. Použijte simulátor níže.
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.Odznak: Git Master
Zvládáte Git workflow, GitHub, npm ekosystém a VS Code produktivitu.
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 pullpřed začátkem práce - ✅ Malé, časté commity s popisnou zprávou
- ✅ Feature větve — nikdy přímo do main
- ✅
.gitignorehned na začátku projektu - ✅ Nikdy
.envsoubory do Gitu - ❌
git push --forcena sdílené větve - ❌
node_modulesdo repozitáře