! neden yok sayılan dizindeki dosyayı korumuyor?

Üst dizin dışlandığı sürece dosya istisnası etkili olmaz. Daha fazla istisna eklemeden dizin kuralını kontrol edin.

1. Hatalı deseni tanıyın

Proje kökünde izlenmeyen build/keep.txt ve build/discard.txt dosyalarını düşünün. Bu kurallar build dizininin kendisini dışlar; Git keep.txt dosyasını aramak için içeri girmez. Sonraki istisna dosyayı geri dahil edemez.

/build/
!/build/keep.txt

2. İçeriği yok sayıp bir dosyayı koruyun

Kök .gitignore içindeki iki kuralı aşağıdakilerle değiştirin. build taranabilir kalır, doğrudan içeriği yok sayılır ve keep.txt yeniden dahil edilir. Daha derin istisnalarda tüm üst dizinler de taranabilir kalmalıdır.

Aynı öncelikte son eşleşen kural geçerlidir. İstisnayı dışlamadan sonra yazın; diğer kuralları ve iç içe .gitignore dosyalarını da inceleyin.

/build/*
!/build/keep.txt

3. İki dosyayı da doğrulayın

Örnek dosyaları oluşturup depo kökünden komutları çalıştırın. Ayrıntılı çıktı keep.txt için !/build/keep.txt, discard.txt için /build/* göstermelidir. ! içeren satır yok saymayı değil, yeniden dahil etmeyi gösterir.

git check-ignore -v -- build/keep.txt build/discard.txt

Durum çıktısı build/keep.txt dosyasını izlenmeyen olarak listelemeli, build/discard.txt dosyasını göstermemelidir. Dosyalar izleniyorsa ilgili yazıya bakın; kurallar indeks girdilerini değiştirmez.

git status --short --untracked-files=all -- build/

Git’in izlediği dosyaları nasıl yok sayarım?

Kesin davranış ve ayrıntılar için resmi kaynaklara başvurun: Git belgeleri · git check-ignore belgeleri