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
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.
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
- 1. Gizli Anahtarları ve `.env` Dosyasını Asla Commit Etme: Veritabanı şifrelerini ve API anahtarlarını ilk commit'ten önce `.gitignore` dosyasına ekle.
- 2. Dev Klasörleri (`node_modules`, `venv`, `bin/obj`) Depoya Gönderme: Bağımlılık klasörleri yerine yalnızca `package.json` veya `requirements.txt` dosyasını depoda tut.
- 3. Küçük ve Anlamlı Commit'ler At: 20 farklı dosyayı tek bir "güncelleme" mesajıyla kaydetmek yerine her özelliği ayrı commit olarak kaydet.
- 4. Paylaşılan Dalda `push --force` Kullanmaktan Kaçın: Ekip arkadaşlarının çalıştığı bir dalda geçmişi zorla ezmek diğer kişilerin çalışmalarını bozabilir.
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:
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.


