🛠️ Modül 2: Temel Teknik Beceriler
Git komutları, Markdown ve lisanslar hakkında temel bilgiler.
📋 Temel Git Komutları
Bu 6 temel komut, günlük Git kullanımınızın %90'ını oluşturacak:
| # | Komut | Açıklama | Analoji |
|---|---|---|---|
| 1 | git init |
Klasörü Git projesine çevirir | 📦 Kutu oluşturma |
| 2 | git status |
Değişiklikleri gösterir | 👀 Durumu kontrol |
| 3 | git add |
Değişiklikleri hazırlar | 📋 Listeye ekleme |
| 4 | git commit |
Değişiklikleri kaydeder | 💾 Kaydetme |
| 5 | git push |
Değişiklikleri gönderir | 📤 Yükleme |
| 6 | git pull |
Değişiklikleri çeker | 📥 İndirme |
1. git init
Boş bir klasörü Git repository'sine dönüştürür:
# Yeni klasör oluştur ve git başlat
mkdir proje-adi
cd proje-adi
git init
# Çıktı: Initialized empty Git repository in .../proje-adi/.git/
2. git status
Repository'nin mevcut durumunu gösterir:
git status
# Hangi dosyalar değişti?
# Hangi dosyalar staged?
# Hangi branch'tayız?
3. git add
Değişiklikleri staging area'ya ekler:
# Tek dosya ekle
git add dosya.txt
# Tüm değişiklikleri ekle
git add .
# Belirli uzantıdaki dosyaları ekle
git add *.js
4. git commit
Staged değişiklikleri kalıcı olarak kaydeder:
# Mesaj ile commit
git commit -m "feat: login sayfası eklendi"
# Add + Commit birlikte (sadece tracked dosyalar)
git commit -am "fix: buton rengi düzeltildi"
5. git push
Yerel commit'leri uzak repository'ye gönderir:
# origin remote'una main branch'ı gönder
git push origin main
# Varsayılan remote ve branch'a gönder
git push
6. git pull
Uzak repository'den değişiklikleri çeker:
# Uzak değişiklikleri indir ve birleştir
git pull origin main
# Varsayılan ayarlarla çek
git pull
7. git log
Commit geçmişini gösterir - projenin hikayesini okuyun:
# Son commit'leri görüntüle
git log
# Tek satırda özet görünüm
git log --oneline
# Grafik görünüm (branch'ları görselleştir)
git log --oneline --graph --all
# Son 5 commit
git log -5
# Örnek çıktı (--oneline):
# a1b2c3d feat: login sayfası eklendi
# e4f5g6h fix: navbar hatası düzeltildi
# i7j8k9l docs: README güncellendi
8. git diff
Dosyalardaki değişiklikleri satır satır gösterir:
# Henüz staged olmayan değişiklikleri gör
git diff
# Staged değişiklikleri gör
git diff --staged
# İki commit arasındaki fark
git diff abc123..def456
# Örnek çıktı:
# - eski satır (kaldırıldı, kırmızı)
# + yeni satır (eklendi, yeşil)
📊 Git Workflow Diyagramı
🙈 .gitignore Dosyası
.gitignore dosyası, Git'e hangi dosyaların takip edilmemesi gerektiğini söyler. Bu sayede gereksiz dosyalar repository'nize eklenmez.
📝 Temel Kullanım
# Yorum satırı
# Tek dosya
.env
secrets.json
# Klasör (sondaki / önemli!)
node_modules/
dist/
build/
.cache/
# Uzantıya göre
*.log
*.tmp
*.pyc
# Pattern (glob)
*.local
.env.*
# Hariç tutma (!)
!.env.example
🎯 Yaygın Pattern'ler
| Pattern | Açıklama | Örnek Eşleşme |
|---|---|---|
*.log |
Tüm .log dosyaları | error.log, debug.log |
build/ |
build klasörü ve içeriği | build/app.js |
**/temp |
Her yerdeki temp klasörü | src/temp, lib/temp |
!important.log |
Hariç tut (ignore etme) | important.log dahil edilir |
doc/*.txt |
doc/ içindeki txt dosyaları | doc/readme.txt |
💻 Dil/Framework Örnekleri
# Dependencies
node_modules/
# Environment
.env
.env.local
.env.*.local
# Build
dist/
build/
.next/
# IDE
.vscode/
.idea/
# OS
.DS_Store
Thumbs.db
# Logs
npm-debug.log*
yarn-debug.log*
# Virtual environment
venv/
.venv/
env/
# Byte-compiled files
__pycache__/
*.py[cod]
*.pyo
# Distribution
dist/
build/
*.egg-info/
# IDE
.idea/
.vscode/
*.swp
# Environment
.env
.env.local
🔧 Git Komutları
# .gitignore oluştur
touch .gitignore
# Zaten tracked dosyayı ignore etmek için
git rm --cached dosya.txt
git rm -r --cached klasor/
# Ignore edilen dosyaları listele
git status --ignored
# Global gitignore ayarla (tüm projeler için)
git config --global core.excludesfile ~/.gitignore_global
📝 Markdown
Markdown, README dosyaları ve dokümantasyon için kullanılan hafif bir işaretleme dilidir.
Temel Söz Dizimi
# Başlık 1
## Başlık 2
### Başlık 3
**Kalın metin** ve *italik metin*
- Madde 1
- Madde 2
- Alt madde
1. Sıralı madde
2. Sıralı madde
[Link](https://example.com)

`inline kod` ve
```javascript
// Kod bloğu
console.log("Merhaba");
```
> Alıntı bloğu
| Tablo | Başlık |
|-------|--------|
| Veri | Veri |
📄 Lisanslar
Projenizi paylaşırken bir lisans seçmek önemlidir:
| Lisans | Özellik | Kullanım |
|---|---|---|
| MIT | En esnek | Ticari kullanım, değiştirme, dağıtım serbest |
| Apache 2.0 | Patent koruması | MIT gibi + patent hakları |
| GPL v3 | Copyleft | Türev çalışmalar da açık kaynak olmalı |
| Unlicense | Public domain | Hiçbir kısıtlama yok |