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á funkcionalita
  • fix: - oprava bugu
  • docs: - dokumentácia
  • refactor: - refaktoring
  • test: - testy
  • chore: - ú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

  1. Atomické commity - jeden commit = jedna zmena
  2. Imperatív - "Add feature" nie "Added feature"
  3. Max 50 znakov pre hlavný riadok
  4. 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.