Modül 2 · Repository yönetimi · ⏱ 10 dakika

.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.

LisansAçıklamaTicari kullanımDeğişiklik paylaşımı
MITEn permissiveEvetZorunlu değil
Apache 2.0Permissive + patent korumasıEvetZorunlu değil
GPL v3Copyleft — türev çalışma da GPL olmalıEvetZorunlu
LGPLKütüphane için hafif copyleftEvetKütüphane değişikliği paylaşılır
BSD 2/3-ClauseMIT benzeri, basitEvetZorunlu değil
ISCMIT’in sadeleştirilmiş versiyonuEvetZorunlu 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:

  1. Proje adı ve kısa açıklama
  2. Badges — build durumu, lisans, version
  3. Kurulum talimatları
  4. Kullanım örnekleri — kod snippet’leri
  5. Contributing — nasıl katkı yapılır
  6. Lisans bilgisi

Farklı konumlar için README:

  • /README.md → repo kök açıklaması
  • /docs/README.md veya /docs/ klasörü → docs sayfaları
  • /.github/README.md → GitHub’a özel metadata (profile README için username/username reposunda)

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

  • .gitignore zaten tracked dosyalara uygulanmaz — git rm --cached gerekir
  • Lisansız repo “all rights reserved” anlamına gelir
  • README, kök dizinde README.md, README, README.txt, readme.md formatları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.