Git je štandard pre verziovanie kódu. Ale bez správnych postupov môže byť zdrojom frustrácie.
Branching stratégie
Git Flow
Vhodný pre projekty s plánovanými releasmi.
main ─────────────────────────────────────
\ /
release ──────────────────
\ /
develop ──────────────────────────────────
\ / \ /
feature ──── ────
GitHub Flow
Jednoduchší prístup - všetko ide do main cez PR.
main ─────────────────────────────────────
\ / \ /
feature ──── ────
Trunk Based Development
Pre skúsené tímy s robustným CI/CD.
Commit messages
Konvenčné commity
<type>(<scope>): <description>
[optional body]
[optional footer]
Typy:
feat:- nová funkcionalitafix:- oprava bugudocs:- dokumentáciarefactor:- refaktoringtest:- testychore:- údržba
Príklady:
feat(auth): add password reset functionality
fix(api): handle null response from payment gateway
docs: update README with installation steps
Pravidlá pre commity
- Atomické commity - jeden commit = jedna zmena
- Imperatív - "Add feature" nie "Added feature"
- Max 50 znakov pre hlavný riadok
- Prečo, nie čo - kód hovorí čo, commit hovorí prečo
Pull Requests
Pred vytvorením PR
# Aktualizujte svoju branch
git fetch origin
git rebase origin/main
# Skontrolujte zmeny
git diff origin/main
PR checklist
- Testy prechádzajú
- Kód je review-ready
- Dokumentácia aktualizovaná
- Žiadne TODO komentáre
- Commit history je čistá
Code review
Autor:
- Popíšte kontext a rozhodnutia
- Reagujte na feedback konštruktívne
Reviewer:
- Buďte konkrétny a konštruktívny
- Schvaľujte keď je "good enough"
- Používajte approve, request changes, comment
Užitočné príkazy
# Interaktívny rebase
git rebase -i HEAD~5
# Stash zmeny
git stash
git stash pop
# Cherry-pick commit
git cherry-pick <commit-hash>
# Amend posledný commit
git commit --amend
# Reset na predchádzajúci stav
git reset --soft HEAD~1 # zachová zmeny
git reset --hard HEAD~1 # zmaže zmeny
.gitignore
# Dependencies
node_modules/
vendor/
# Build
dist/
build/
.nuxt/
# Environment
.env
.env.local
# IDE
.idea/
.vscode/
# OS
.DS_Store
Thumbs.db
Hooks
Automatizácia pred commitom:
# .husky/pre-commit
npm run lint
npm run test
Záver
Konzistentný Git workflow zlepšuje produktivitu celého tímu. Dohodnite sa na pravidlách a dodržiavajte ich.