GitHub kezdőknek
A Git és a GitHub a modern szoftverfejlesztés alapvető eszközei. Segítenek a kód verziókezelésében, csapatmunkában és a projektek biztonságos tárolásában.
Mi az a Git és GitHub?
Git
A Git egy elosztott verziókezelő rendszer, amelyet Linus Torvalds fejlesztett 2005-ben. Lehetővé teszi:
- Kódváltozások nyomon követését
- Korábbi verziókhoz való visszatérést
- Párhuzamos fejlesztést branch-eken
- Offline munkát a teljes projekt történetével
GitHub
A GitHub egy felhőalapú platform Git repository-k tárolására és kezelésére. Funkciói:
- Repository hosting
- Együttműködési eszközök (Issues, Pull Requests)
- CI/CD integráció (GitHub Actions)
- Projektmenedzsment (Projects, Milestones)
- Kód review és biztonság
Git = verziókezelő eszköz a gépeden GitHub = online platform a Git repository-k tárolására
Miért érdemes megtanulni?
| Szempont | Előny |
|---|---|
| Csapatmunka | Több fejlesztő dolgozhat ugyanazon a projekten |
| Biztonság | A kód biztonságosan tárolva, nem vész el |
| Történet | Minden változás visszakövethető |
| Visszaállítás | Bármikor visszatérhetsz korábbi verzióhoz |
| Iparági standard | A legtöbb cég elvárja a Git ismeretét |
A GitHub 2024-ben már több mint 100 millió fejlesztőt számlál, és a legtöbb nyílt forráskódú projekt itt található.
Telepítés és beállítás
1. Git telepítése
macOS
# Homebrew-val (ajánlott)
brew install git
# Vagy Xcode Command Line Tools-zal
xcode-select --install
Windows
Töltsd le a telepítőt: git-scm.com/download/win
Vagy használd a winget-et:
winget install Git.Git
Linux (Ubuntu/Debian)
sudo apt update
sudo apt install git
Ellenőrzés
git --version
# Kimenet: git version 2.43.0
2. GitHub fiók létrehozása
- Látogass el a github.com/signup oldalra
- Add meg az email címed
- Válassz felhasználónevet és jelszót
- Erősítsd meg az email címed
3. Git konfiguráció
A GitHub fiókod összekapcsolása a Git-tel:
# Felhasználónév beállítása
git config --global user.name "Felhasználóneved"
# Email beállítása (ugyanaz, mint a GitHub-on)
git config --global user.email "[email protected]"
# Alapértelmezett branch neve
git config --global init.defaultBranch main
# Beállítások ellenőrzése
git config --list
4. SSH kulcs beállítása (ajánlott)
Az SSH kulcs biztonságosabb és kényelmesebb, mint a jelszó használata.
# SSH kulcs generálása
ssh-keygen -t ed25519 -C "[email protected]"
# Kulcs hozzáadása az SSH agent-hez
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# Publikus kulcs megjelenítése
cat ~/.ssh/id_ed25519.pub
A megjelenő kulcsot másold ki, majd:
- GitHub → Settings → SSH and GPG keys
- Kattints a New SSH key gombra
- Illeszd be a kulcsot és mentsd
Ellenőrzés:
ssh -T [email protected]
# Kimenet: Hi username! You've successfully authenticated...
Alapvető Git parancsok
Repository létrehozása
# Új repository inicializálása
git init
# Meglévő repository klónozása
git clone https://github.com/user/repo.git
# SSH-val klónozás
git clone [email protected]:user/repo.git
Alapvető workflow
# 1. Állapot ellenőrzése
git status
# 2. Fájlok hozzáadása a staging area-hoz
git add . # Minden fájl
git add filename.php # Egy fájl
git add src/ # Egy mappa
# 3. Változások commitolása
git commit -m "Add: új funkció leírása"
# 4. Feltöltés GitHub-ra
git push origin main
Branch kezelés
# Branch-ek listázása
git branch
# Új branch létrehozása és váltás
git checkout -b feature/new-feature
# Branch váltás
git checkout main
# Branch törlése
git branch -d feature/new-feature
# Branch merge-elése
git checkout main
git merge feature/new-feature
Távoli repository kezelés
# Remote hozzáadása
git remote add origin [email protected]:user/repo.git
# Remote-ok listázása
git remote -v
# Változások lekérése
git pull origin main
# Változások feltöltése
git push origin main
Hasznos parancsok
# Változások megtekintése
git diff
# Commit történet
git log --oneline
# Utolsó commit visszavonása (lokálisan)
git reset --soft HEAD~1
# Fájl visszaállítása
git checkout -- filename.php
# Stash (változások ideiglenes félretétele)
git stash
git stash pop
Első projekt feltöltése GitHub-ra
1. Hozz létre egy repository-t GitHub-on
- Kattints a + ikonra → New repository
- Add meg a repository nevét
- Válaszd ki: Public vagy Private
- Ne pipáld be a "Add a README file" opciót
- Kattints: Create repository
2. Töltsd fel a projekted
# Navigálj a projekt mappájába
cd /path/to/your/project
# Git inicializálása
git init
# README létrehozása
echo "# Projekt neve" >> README.md
# Fájlok hozzáadása
git add .
# Első commit
git commit -m "Initial commit"
# GitHub remote hozzáadása
git remote add origin [email protected]:username/repo-name.git
# Feltöltés
git push -u origin main
GitHub Desktop
A GitHub Desktop egy grafikus alkalmazás, amely megkönnyíti a Git használatát.
Telepítés
- Töltsd le: desktop.github.com
- Telepítsd az alkalmazást
- Jelentkezz be a GitHub fiókod
Főbb funkciók
| Funkció | Leírás |
|---|---|
| Clone | Repository letöltése |
| Commit | Változások mentése |
| Push/Pull | Szinkronizálás GitHub-bal |
| Branch | Branch-ek kezelése |
| History | Commit történet megtekintése |
| Diff | Változások vizuális összehasonlítása |
Használat
- Repository klónozása: File → Clone repository
- Változások commitolása: Írj commit üzenetet és kattints a Commit gombra
- Push: Kattints a Push origin gombra
- Pull: Kattints a Fetch origin, majd Pull gombra
Commit üzenet konvenciók
Használj tiszta, leíró commit üzeneteket:
# Formátum
<típus>: <rövid leírás>
# Típusok
feat: Új funkció
fix: Hibajavítás
docs: Dokumentáció
style: Formázás (nem változtat kódon)
refactor: Refaktorálás
test: Tesztek
chore: Build, konfiguráció
# Példák
git commit -m "feat: Add user authentication"
git commit -m "fix: Resolve login page redirect issue"
git commit -m "docs: Update README with installation steps"
.gitignore
A .gitignore fájl meghatározza, mely fájlokat ne kövesse a Git.
WordPress projekt .gitignore
# WordPress core (ha Composer-rel kezeled)
/wp/
# Uploads
wp-content/uploads/
# Cache
wp-content/cache/
wp-content/advanced-cache.php
wp-content/wp-cache-config.php
# Konfigurációs fájlok
wp-config.php
.env
# IDE
.idea/
.vscode/
*.sublime-*
# OS
.DS_Store
Thumbs.db
# Dependencies
/vendor/
/node_modules/
# Build
/dist/
*.min.js
*.min.css
# Logs
*.log
debug.log
Gyakori hibák és megoldások
"Permission denied (publickey)"
# SSH kulcs ellenőrzése
ssh -T [email protected]
# Ha nincs kulcs, generálj újat
ssh-keygen -t ed25519 -C "[email protected]"
"Updates were rejected"
# Először pull-olj
git pull origin main --rebase
# Majd push
git push origin main
"Merge conflict"
# 1. Nyisd meg a konfliktusok fájlokat
# 2. Keresd meg a <<<<<<< és >>>>>>> jelöléseket
# 3. Szerkeszd manuálisan
# 4. Add hozzá és commitold
git add .
git commit -m "fix: Resolve merge conflicts"
Rossz commit visszavonása
# Utolsó commit visszavonása (változások megmaradnak)
git reset --soft HEAD~1
# Utolsó commit törlése (változások is törlődnek!)
git reset --hard HEAD~1
VS Code integráció
A VS Code beépített Git támogatással rendelkezik:
- Source Control panel (Ctrl+Shift+G)
- Git Graph extension a vizuális történethez
- GitLens extension haladó funkciókhoz
Hasznos VS Code Git műveletek
- Stage Changes: + ikon a fájl mellett
- Commit: ✓ ikon a tetején
- Push/Pull: ... menü → Push/Pull
- Branch váltás: Bal alsó sarokban
Források
- Git hivatalos dokumentáció
- GitHub Docs
- GitHub Skills - Interaktív tanulás
- Pro Git könyv - Ingyenes
- GitHub Desktop