Learning
Git CLI

Git best practice-ek

Commit üzenetek, atomic commitok, .gitignore, branch konvenciók, aliasok és globális config.

Git best practice-ek

Commit üzenetek

Írj értelmes commit üzeneteket. A commit üzenet a jövőbeli önmagadnak és a csapatodnak szóló dokumentáció.

# Rossz
git commit -m "fix"
git commit -m "changes"
git commit -m "asdf"

# Jó – Conventional Commits formátum
git commit -m "feat(auth): add JWT refresh token rotation"
git commit -m "fix(cart): prevent negative quantity on update"
git commit -m "docs: update API authentication guide"
git commit -m "refactor(api): extract error handling middleware"

Az arany szabály: A commit üzenet tárgymondata legyen képes befejezni ezt a mondatot: "Ha alkalmazzuk ezt a commitot, akkor az kódbázis..."

  • ...feat(auth): add JWT refresh token rotation
  • ...added some auth stuff

Atomic commitok

Minden commit egyetlen, jól definiált változást tartalmazzon. Ne keverd össze a feature-t, a bugfixet és a refactort egyetlen commitban.

# Rossz – mindent egy commitba
git add .
git commit -m "add feature + fix bugs + update deps"

# Jó – szeparált, fókuszált commitok
git add src/feature/
git commit -m "feat: implement new user onboarding flow"

git add src/bugfix/
git commit -m "fix: prevent race condition in session handler"

.gitignore helyes használata

Mindig adj hozzá .gitignore fájlt a projekthez, és tedd bele a nem követendő fájlokat:

# Függőségek
node_modules/
vendor/

# Build kimenetek
dist/
build/
.next/

# Környezeti változók
.env
.env.local
.env.*.local

# IDE beállítások
.idea/
.vscode/
*.swp

# OS fájlok
.DS_Store
Thumbs.db

# Logok
*.log
logs/

Ha már commitált fájlokat kell eltávolítani:

git rm --cached .env
git commit -m "chore: remove .env from tracking"

Branch elnevezési konvenciók

feature/  – új funkciók (feature/user-profile)
fix/      – bugfixek (fix/login-redirect)
hotfix/   – sürgős production javítások (hotfix/payment-crash)
docs/     – dokumentáció (docs/api-reference)
refactor/ – refaktorálás (refactor/auth-service)
chore/    – karbantartási feladatok (chore/update-dependencies)
test/     – tesztek (test/add-unit-tests-auth)

Amit sosem szabad csinálni

# Soha ne force push-olj megosztott branch-ekre
git push --force origin main  # ❌

# Soha ne commitálj érzékeny adatot
git add .env  # ❌ – titkos kulcsok, jelszavak

# Soha ne rebase-elj már pusolt, megosztott commitokat
git rebase main  # ❌ ha origin/feature/... mások is használják

# Soha ne commitálj közvetlenül a main-re csapaton belül
git switch main
git commit -m "quick fix"  # ❌ – branch-en dolgozz

Git alias-ok a hatékonyságért

Konfigurálj alias-okat a gyakran használt parancsokhoz:

git config --global alias.st "status -s"
git config --global alias.lg "log --oneline --graph --all --decorate"
git config --global alias.co "checkout"
git config --global alias.sw "switch"
git config --global alias.cm "commit -m"
git config --global alias.undo "reset --soft HEAD~1"
git config --global alias.unstage "restore --staged"

Ezután:

git st          # git status -s
git lg          # részletes log grafikusan
git undo        # utolsó commit visszavonása

Globális Git konfiguráció

# Azonosítás beállítása (kötelező!)
git config --global user.name "Teljes Neved"
git config --global user.email "email@example.com"

# Alapértelmezett branch neve
git config --global init.defaultBranch main

# Sor végi karakterek (Windows esetén)
git config --global core.autocrlf true    # Windows
git config --global core.autocrlf input   # Mac/Linux

# Alapértelmezett editor
git config --global core.editor "code --wait"  # VS Code
git config --global core.editor "nvim"          # Neovim

# Pull alapértelmezett viselkedése
git config --global pull.rebase true

# Push alapértelmezett viselkedése
git config --global push.default current

Rövid összefoglaló

  • Írj Conventional Commits formátumú, értelmes commit üzeneteket.
  • Minden commit egyetlen, fókuszált változást tartalmazzon (atomic commits).
  • Soha ne commitálj .env fájlt vagy más érzékeny adatot.
  • Branch-en dolgozz mindig; ne pushölj --force-szal megosztott ágakra.
  • Konfigurálj alias-okat a hatékonyabb munkához.
  • Állítsd be a globális Git konfigurációt (user, editor, pull.rebase).

On this page