.gitignore, LICENSE ve README — repo temizliği
.gitignore, LICENSE and README — repository hygiene
Bu derste neler öğreneceksin
- .gitignore dosyasının nasıl çalıştığını ve yaygın pattern'leri bilmek
- Açık kaynak lisans tiplerini ve seçim kriterlerini anlamak
- İyi bir README'nin ne içermesi gerektiğini listelemek
- Bu üç dosyanın sınav perspektifindeki önemini anlamak
Her iyi GitHub reposunda üç temel dosya bulunur: .gitignore, LICENSE ve README.md. GH-900 sınavı bu dosyaların amacını ve davranışını doğrudan sorar.
.gitignore
.gitignore, Git’in takip etmemesi gereken dosya ve klasörleri tanımlar. Repo kökünde bulunur.
Yaygın kullanım örnekleri
# Derleme çıktıları
/build/
/dist/
*.class
*.o
# Bağımlılıklar
node_modules/
vendor/
.venv/
# Ortam değişkenleri (asla commit'lenmemeli!)
.env
.env.local
*.env
# IDE dosyaları
.vscode/
.idea/
*.swp
# OS dosyaları
.DS_Store
Thumbs.db
# Log dosyaları
*.log
/logs/
.gitignore nasıl çalışır?
- Satır başı
#yorum satırıdır *joker karakter — tek dizin seviyesinde eşleşir**her seviyede eşleşir (**/logs→ her dizindeki logs klasörü)/ile başlayan pattern sadece repo kökünden başlar!ile başlayan pattern bir istisnayı (un-ignore) tanımlar
# Tüm log dosyalarını yoksay
*.log
# Ama bu özel log dosyasını takip et
!important.log
.gitignore templates
GitHub repo oluşturulurken dil/framework bazlı .gitignore şablonları seçilebilir. GitHub’ın resmi gitignore koleksiyonu: github.com/github/gitignore
Önemli: Halihazırda tracked (commit edilmiş) dosyalar .gitignore’a eklense de takip edilmeye devam eder. Bunları Git’in takibinden çıkarmak için:
git rm --cached .env
git commit -m "Stop tracking .env file"
LICENSE
Açık kaynak lisans, başkalarının kodu nasıl kullanabileceğini, değiştirebileceğini ve dağıtabileceğini tanımlar.
| Lisans | Açıklama | Ticari kullanım | Değişiklik paylaşımı |
|---|---|---|---|
| MIT | En permissive | Evet | Zorunlu değil |
| Apache 2.0 | Permissive + patent koruması | Evet | Zorunlu değil |
| GPL v3 | Copyleft — türev çalışma da GPL olmalı | Evet | Zorunlu |
| LGPL | Kütüphane için hafif copyleft | Evet | Kütüphane değişikliği paylaşılır |
| BSD 2/3-Clause | MIT benzeri, basit | Evet | Zorunlu değil |
| ISC | MIT’in sadeleştirilmiş versiyonu | Evet | Zorunlu değil |
Lisans seçimi için: choosealicense.com
GitHub’da lisansı olmayan repo: başkalarının kullanamayacağı anlamına gelir (tüm haklar saklıdır).
README.md
README, repo sayfasında otomatik gösterilen açıklama dosyasıdır. Markdown formatında yazılır.
İyi bir README içermesi gerekenler:
- Proje adı ve kısa açıklama
- Badges — build durumu, lisans, version
- Kurulum talimatları
- Kullanım örnekleri — kod snippet’leri
- Contributing — nasıl katkı yapılır
- Lisans bilgisi
Farklı konumlar için README:
/README.md→ repo kök açıklaması/docs/README.mdveya/docs/klasörü → docs sayfaları/.github/README.md→ GitHub’a özel metadata (profile README içinusername/usernamereposunda)
Profile README
github.com/<username>/<username> adında bir repo oluşturup README.md ekleyince GitHub profil sayfanda özel içerik gösterilir. Bu sınava girebilir.
Sınav perspektifinden önemli noktalar
.gitignorezaten tracked dosyalara uygulanmaz —git rm --cachedgerekir- Lisansız repo “all rights reserved” anlamına gelir
- README, kök dizinde
README.md,README,README.txt,readme.mdformatlarında tanınır CONTRIBUTING.md— katkı kuralları;CODE_OF_CONDUCT.md— topluluk kuralları; bunlar da sınava girebilir
Sırada ne var?
Sonraki derste releases, tag’ler ve commit geçmişini yönetmeyi ele alacağız.