Menu

.gitignore Üretici

Diller, frameworkler, IDE'ler ve işletim sistemleri için temiz bir .gitignore oluştur.

Son güncelleme

Hızlı yığınlar
Şablon seç2 seçili

Diller

Frameworkler

Editörler ve IDE'ler

İşletim sistemleri

.gitignore · 37 satır
# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
.pnpm-store/
.npm
.yarn-integrity

# Coverage
coverage/
*.lcov
.nyc_output

# Build output
dist/
build/

# Environment
.env
.env.local
.env.*.local

# macOS
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

.gitignore üretici nedir?

Her Git deposu bir .gitignore ister. Git'in **takip etmemesi** gereken yolların düz metin listesidir: build çıktıları, bağımlılık klasörleri, IDE ayarları, .DS_Store gibi işletim sistemi çöpleri. Onsuz ilk commit'in yanlışlıkla node_modules/, .env ve target/ çekecek; bu karışıklığı temizlemek dosyayı baştan doğru kurmaktan çok daha can sıkıcı.

Her ekosistem farklı şeyleri yoksayar ve çoğu proje birden fazlasını birden kapsar. macOS dizüstünde VS Code ile tipik bir Node + TypeScript uygulaması bile dört farklı yoksayma listesinin birleşimini ister. Bunu ezbere yazmak coverage/'ı unutmak, .env sızdırmak veya bir takım arkadaşının JetBrains'inden kalma .idea/ commit'lemek demek.

İşte bu yüzden bu üretici, kanonik github/gitignore projesinden derlenmiş şablonları paketler — GitHub'ın resmi öneri kurallarının kaynağı — ve onları üst üste istif etmeni sağlar. Geçerli kutuları işaretle, araç tekilleştirilmiş tek bir .gitignore üretsin ve doğrudan deponun köküne yapıştır. Hesap yok, yükleme yok, her şey tarayıcıda.

.gitignore'unu kurarken öğrenecekleriniz

  • .gitignore desenleri glob sözdizimi kullanır: *.log her log dosyasını yoksayar, build/ bir klasörü yoksayar, !important.log bir glob eşleşse bile belirli dosyayı yeniden dahil eder.
  • Desenler .gitignore dosyasının konumuna göre uygulanır — src/ içindeki bir .gitignore yalnızca src/ altındaki dosyaları etkiler.
  • Daha önce takip edilen dosyalar **geriye dönük yoksayılmaz**. node_modules/'u commit'leyip sonra .gitignore'a eklersen, takipten çıkarmak için git rm -r --cached node_modules çalıştırman gerekir.

.gitignore'u adım adım üret

  1. Hızlı ön ayar seç (opsiyonel)

    Projen yaygın bir kombinasyonla eşleşiyorsa — Next.js, Django, Rails — bir presete tıkla; ilgili tüm kutular bir kerede işaretlensin. Sonra ekstraların varsa birkaç tane ekle veya kaldır.

  2. Dillerini ekle

    Her dilin yoksanacak artefaktları var: Node'da node_modules/, Python'da __pycache__/ ve sanal ortamlar, Java'da target/ ve .class. Projeninin gerçekten derlediği dilleri seç.

  3. Frameworklerini ekle

    Dil kurallarının üstüne frameworkler kendi dizinlerini ekler: Next.js .next/ ve .vercel, Django staticfiles/ ve db.sqlite3, Rails tmp/ ve /storage/* ister. Kullandığını işaretle.

  4. Editörleri ve işletim sistemlerini ekle

    Yalnızca senin değil, **ekibin** kullandığı editör şablonlarını ekle — biri JetBrains veya Vim kullanıyorsa onları dahil et. Sonra ekipteki işletim sistemleri: macOS .DS_Store, Windows Thumbs.db döker — ikisini de kazara commit'lemek kolaydır.

  5. Kopyala veya indir

    Sağ panel birleştirilmiş ve tekilleştirilmiş çıktıyı gösterir. **Kopyala**'yı tıklayıp depo köküne .gitignore olarak yapıştır ya da **İndir**'i tıklayıp dosyayı doğrudan kaydet.

.gitignore sözdizimi — hızlı referans

En sık yazacağın desenler. Tam referans: git-scm.com/docs/gitignore.

DesenAnlamÖrnek
node_modulesBu isimdeki dosya veya klasörü ağacın her yerinde yoksayHem /node_modules'u hem de src/node_modules'u kapsar
node_modules/Sondaki eğik çizgi — yalnızca **klasör** ile eşleşir, aynı isimli dosyayla değilYanlışlıkla node_modules adlı bir dosyayı kapsamaz
/buildBaştaki eğik çizgi — sadece .gitignore'un olduğu dizine sabitler/build'i kapsar, src/build'i değil
*.logGlob — .log ile biten her dosyayla eşleşirerror.log, debug.log, logs/foo.log'u kapsar
!important.logNegasyon — önceki bir kuralın yoksaydığı belirli bir dosyayı geri al*.log ile eşleştirip bir log dosyasını izlemeye al
docs/**/draftÇift yıldız — docs/'un herhangi bir alt klasöründeki draft'ı kapsardocs/v1/draft ve docs/2025/q1/draft'ı kapsar
# commentYorum — # ile başlayan satırlar Git tarafından yoksayılır# Node.js gibi bölüm başlıklarıyla kuralları grupla

Denenecek .gitignore örnekleri

Asgari Node.js + macOS .gitignore

Mac'te her Node projesinin ihtiyacı olan şey

# Node.js node_modules/ npm-debug.log* dist/ .env .env.local # macOS .DS_Store ._*

macOS kullanan bir takım arkadaşıyla paylaşılan her Node projesinin minimumu. Küçük bir yan proje bile bu kurallara sahip olmalı — .DS_Store ve node_modules/ olmadan anlamsız çakışmalarla boğuşursun.

Python + Django + JetBrains

Yaygın sunucu tarafı Python yığını

# Python __pycache__/ *.py[cod] .venv .pytest_cache/ # Django *.log local_settings.py db.sqlite3 media/ staticfiles/ # JetBrains .idea/ *.iml

PyCharm'da geliştirilen tipik bir Django backend'i. Yerel db.sqlite3'in yoksayıldığına dikkat — prod onu kullanmaz, commit'lemek dev verisini sızdırır ve arkadaşlarının taze klonlarını bozar.

Bir kuralı negasyonla geçersiz kıl

Biri hariç tüm logları yoksay

*.log !keep-me.log

İlk satır her .log'u yoksayar. !keep-me.log kuralı bu belirli dosyayı yeniden dahil eder. Negasyonlar yalnızca önceki bir kuralın yoksaydığı dosyalar için işe yarar — yoksayılan klasörün içindeki bir dosyayı yeniden dahil edemezsin.

.gitignore'da sık hatalar

  • .gitignore'u sonradan ekleyip commit'lenmiş dosyaların yok olmasını beklemek. Olmazlar — takipten çıkarmak için git rm -r --cached <yol> çalıştırmalısın.
  • Bir .env'i bir kere bile commit'lemek. Tek commit sırrı sonsuza dek geçmişe sızdırır. İlk commit'ten **önce** .env*'i .gitignore'a ekle, sızan her sırrı döndür.
  • Paylaşımlı repolarda işletim sistemi gürültüsünü unutmak. Tek bir arkadaşın macOS'taysa ve repoda .DS_Store kuralı yoksa, o dosyalar her PR diff'inde ortaya çıkar.

.gitignore Üretici SSS

Bu .gitignore şablonları nereden geliyor?
Şablonlar açık kaynaklı github/gitignore projesinden yoğunlaştırıldı — GitHub'ın yeni repo oluştururken ".gitignore ekle" işaretlediğinde kullandığı kaynak. Her birini ekiplerin gerçekten ihtiyaç duyduğu kurallara kıstık ve kategorilere göre grupladık.
.gitignore dosyasını commit'lemeli miyim?
Evet. .gitignore sürüm kontrolünde tutulup ekiple paylaşılmak için tasarlanmıştır. Neyin takip edilip edilmeyeceğine dair *sözleşmedir*. İstisna, kişisel tercihler (ör. seçtiğin editör) — onlar global ~/.gitignore_global'a aittir.
Daha önce commit'lediğim bir dosyayı nasıl takipten çıkarırım?
Önce .gitignore'a ekle, sonra git rm --cached <yol> (ya da git rm -r --cached <klasör>) ile diskten silmeden indeksten çıkar. İki değişikliği birlikte commit'le ki takım arkadaşların güncellemeyi görsün.
Tek bir repoda birden fazla .gitignore olabilir mi?
Evet. Git her dizinde bir .gitignore arar ve kuralları o alt ağaca uygular. Frontend ve backend'in çok farklı yoksayma kurallarına sahip olduğu monorepolarda işe yarar — paylaşımlı işletim/editör gürültüsünü kökte tut, dil kurallarını her paketin kendi dizininde tut.
.gitignore ile .git/info/exclude arasındaki fark nedir?
.gitignore commit edilip ekiple paylaşılır. .git/info/exclude yalnızca yerel klonunda yaşar ve push'lamak istemediğin kişisel hariç tutmalar içindir. Tüm repolarına yayılan hariç tutmalar için global ~/.gitignore_global kullan.

Diğer geliştirici araçları

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA