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 dolgozzGit 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ásaGlobá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 currentRö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
.envfá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).