İçeriğe geç
Blog · Yazılım

.gitignore neden çalışmıyor? İzlenen dosya ile geçmiş farkı

Daha önce Git’e eklenen dosyayı .gitignore otomatik durdurmaz. Sahte bir dosyayla izleme davranışını dene; geçmiş ve sır iptalini ayrı değerlendir.

Webino App Ekibi Son güncelleme: 5 dk okuma
Bu sayfada · 11 başlık

.gitignore, daha önce izlenen dosyaları otomatik olarak izleme dışına çıkarmaz. Yeni bir dosyanın hazırlık alanına eklenmesini engellemekle kayıtlı bir dosyanın geçmişini temizlemek farklı işlemlerdir. Bu yüzden ilk kontrol dosyanın Git tarafından izlenip izlenmediğidir.

1. Dosyanın durumunu gör

Terminal
git status --short
git ls-files -- .env

İkinci komut .env satırı döndürüyorsa dosya izleniyordur. Hiç sonuç gelmemesi ise tek başına bir ignore kuralının eşleştiğini kanıtlamaz; dosyanın konumunu ve kuralı ayrıca kontrol et. Kuralları değiştirmeden önce kendi dosyanın yedeğini ve çalışma durumunu değerlendir.

2. Öğrenmek için gerçek sır kullanma

Boş bir deneme klasöründe git init çalıştır. .env dosyasına yalnızca ORNEK_DEGER=gercek-anahtar-degil yaz ve git add .env ile ekle. Sonra .gitignore içine .env yaz. git ls-files -- .env komutu hâlâ dosyayı gösterir. Bu, beklenen davranışı kendi başına görmen içindir; gerçek anahtarlarını bu alıştırmada kullanma.

3. Yalnızca takibi kaldırmak istiyorsan

Örnek depoda aşağıdaki komut dosyayı Git’in hazırlık alanından çıkarır; çalışma klasöründeki dosyayı silmez. Gerçek projede aynı işlemi yapmadan önce hedef dosyayı ve ekipte doğuracağı değişikliği incele. Komutun etkisini git status ile kontrol et; yeni kaydı kendin değerlendirerek oluştur.

Terminal
git rm --cached -- .env
git status --short
git ls-files -- .env
git check-ignore -- .env

Bu denemede son komut .env yazmalı; ls-files artık o dosyayı listelememelidir. Böylece izleme ve ignore kuralının iki ayrı durum olduğunu görürsün. Birden fazla klasörde .gitignore varsa kuralların kapsamını ve dosyanın göreli yolunu da kontrol et.

4. Dosya geçmişte veya internette paylaşıldıysa

Takibi kaldırmak eski commit’leri veya uzak depodaki kopyaları silmez. Gerçek bir anahtar yayımlandıysa öncelik sağlayıcısından iptal etmek ve yenisini üretmektir. Geçmişi yeniden yazmak ayrı bir ekip çalışmasıdır; bu başlangıç alıştırması geçmiş temizleme komutu vermiyor. Yalnızca dosyayı görünmez yapmak bir güvenlik düzeltmesi değildir.

Aynı hatanın çözümü .gitignore ile geçmişteki sırrı temizlediğini sanmak →

Resmî belge

Git’in izlenen dosyalar ve ignore kuralları açıklaması ↗

Git İş Akışında En Sık Kullanılan Komutlar ve Görev Tablosu

.gitignore neden çalışmıyor? İzlenen dosya ile geçmiş farkı konusunu uygularken hangi komutun dosyayı hangi aşamaya taşıdığını bilmek, yanlışlıkla kod kaybetmeni önler:

Komut Ne Yapar? Ne Zaman Kullanılır? Dikkat Edilecek Nokta
git status Değişen, eklenen ve izlenmeyen dosyaları listeler Her işlemden önce ve sonra durumu görmek için Hiçbir dosyayı değiştirmez, tamamen güvenlidir
git diff Kaydedilmemiş satır farklarını gösterir Commit atmadan önce "Ben neyi değiştirdim?" demek için Unutulan `console.log` veya test satırlarını yakalar
git add <dosya> Seçilen dosyayı hazırlık alanına (Staging) alır Yalnızca ilgili değişikliği pakete dahil etmek için `git add .` yapmadan önce `.gitignore` dosyasını kontrol et
git commit -m "mesaj" Hazırlık alanındaki dosyaların kalıcı anlık görüntüsünü alır Anlamlı bir küçük adım tamamlandığında Mesajda "ne ve neden değişti" kısaca açıklanmalıdır
git switch -c <dal-adi> Yeni bir çalışma dalı (branch) oluşturup oraya geçer Yeni bir özellik veya hata düzeltmesine başlarken Ana dalı (`main`) her zaman çalışır durumda tutar

Git ve GitHub Kullanırken 4 Altın Kural

Sıkça Sorulan Sorular (SSS)

Yanlışlıkla `git add` yaptığım bir dosyayı nasıl geri çıkarırım? +

Dosyadaki kodlarını silmeden yalnızca hazırlık alanından (staging) çıkarmak için git restore --staged <dosya-adi> komutunu çalıştırabilirsin.

`git commit` yaptıktan sonra kodlarım otomatik olarak GitHub'a gider mi? +

Hayır. `git commit` değişikliği yalnızca senin bilgisayarındaki yerel `.git` veritabanına kaydeder. Uzak sunucuya (GitHub veya GitLab) göndermek için ayrıca git push komutunu çalıştırman gerekir.

Webino App denemesi: İzlenen dosyanın ignore davranışını kontrol ettik

Geçici bir yerel depoda yalnızca sahte .env içeriği kullanıldı. Önce takip edilen dosyanın .gitignore eklenmesine rağmen listelendiği, sonra yalnızca takibin kaldırıldığı doğrulandı. Gerçek sır veya uzak depo kullanılmadı; geçmiş temizleme denenmedi.

Yayın:

↑ Başa dön

Yazan

Webino App Ekibi

Teknolojiyi sade Türkçeyle anlatan rehberler. Örnekleri kendin deneyebilir, bağlantılı resmi belgelerle konuyu derinleştirebilirsin.

Bunları da okuyabilirsin

Tüm yazılar →

Yorumlar

Soruların ya da eklemek istediklerin varsa yaz.

Bu içerik işine yaradı mı?

Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.