.gitignore Oluşturucu

Sonraki

Eksik bir .gitignore, API anahtarlarının Git geçmişine sızmasının ve 400 MB’lık node_modules klasörünün GitHub’a gönderilmesinin başlıca nedenidir. Bu oluşturucu; Node, Python, Rails veya Laravel gibi stack’iniz için test edilmiş bir şablon üretir ve bağımlılık klasörleri, derleme çıktıları ile ortam dosyaları önceden hariç tutulmuştur.

.gitignore nasıl oluşturulur

  1. 1

    Stack'inizi seçin

    Node, Python, Rails ya da Laravel, her birinin kendine özgü geçici dosyaları vardır.

  2. 2

    Oluşturun

    Araç, ortak kuralları (.DS_Store, .env, node_modules) stack'e özgü kurallarla birleştirir.

  3. 3

    .gitignore olarak kaydedin

    Dosyayı ilk commit'ten önce deponun kök dizinine yerleştirin.

  4. 4

    Commit'leyin

    .gitignore dosyasının kendisi de izlenmelidir; o, yerel bir tercih değil, projenin bir parçasıdır.

Ortak blok neden her zaman bulunur?

Kural Yok sayma nedeni
.DS_Store macOS Finder meta verileri, diğer makineler için asla yararlı değildir
.env Sırlar: API anahtarları, veritabanı şifreleri, OAuth kimlik bilgileri
.env.* Ortama özgü varyantlar (staging, production)
!.env.example Ancak örnek dosyayı saklayın ki yeni katkıda bulunanlar yapıyı bilsin
node_modules/ package.json’dan yeniden kurulabilir; çok büyük ve platforma özgü

Stack’e özgü eklemeler

Stack Temel eklemeler
Node dist/, coverage/, npm-debug.log*
Python __pycache__/, .venv/, *.pyc, .pytest_cache/
Rails log/*, tmp/*, storage/*, /public/assets
Laravel vendor/, /storage/*.key, /public/build, .phpunit.cache/

Sık yapılan hatalar

  • .env dosyasını çok erken commit’lemek ve ardından .gitignore’a eklemek. Dosya zaten geçmişte yer alıyor, git rm --cached .env komutunu kullanın ve içinde bulunan tüm sırları döndürün (rotate edin).
  • .env.example dosyasını .env ile birlikte yok saymak. Takım arkadaşlarının projeyi ayağa kaldırmak için örnek dosyaya ihtiyacı vardır.
  • Fazla geniş glob’lar: *.log, production için kritik günlük yapılandırmalarını gizleyebilir; şüphe duyduğunuzda daha spesifik olun.
  • Yalnızca size özgü olmayan platforma özgü dosyalar: bunları kişisel bir dosya yerine ortak bir .gitignore üzerinden ekleyin.

Kişisel .gitignore ile proje .gitignore’u karşılaştırması

Yalnızca size özgü düzenleyici dosyaları için (JetBrains IDE’leri, Emacs), her projeyi şişirmek yerine genel (global) gitignore’unuzu (~/.config/git/ignore) kullanın.

Sık Sorulan Sorular

Çünkü .gitignore yalnızca izlenmeyen dosyaların eklenmesini engeller. Zaten commit’lenmiş bir dosyanın izlenmesini durdurmak için git rm --cached path/to/file komutunu çalıştırın, değişikliği commit’leyin; kural bundan sonra o dosyayı hariç tutacaktır.

Hayır, lock dosyaları commit’lenmelidir ki her ortam tam olarak aynı sürümleri yüklesin. Onları yok saymak, “benim makinemde çalışıyor” türündeki hataları yeniden ortaya çıkarır.

Baştaki eğik çizgi, deseni deponun köküne sabitler. /logs yalnızca en üst düzeydeki logs/ dizinini eşleştirir; logs ise herhangi bir derinlikteki tüm logs dizinlerini eşleştirir.

Hayır. Oluşturulan dosya saklanmaz ve izlenmez. Kuralları oluşturmak için stack seçiminiz sunucumuza gönderilir; çok adımlı modda sayfa bağlantısında da yer alır, ancak dosya içeriği kaydedilmez.

İlgili Araçlar

Araç diğer dillerde mevcuttur