
Git dosyaları yalnızca .gitignore ile değil, üç düzeyde yok sayıyor
Bir blog yazısı Git'te dosya yok saymanın üç düzeyini anlatıyor: depoya işlenen .gitignore, depoya özel .git/info/exclude ve makine genelinde geçerli global yok sayma dosyası.
Git ile çalışan çoğu kişi dosyaları sürüm kontrolünün dışında tutmanın tek bir yolunu bilir: onları .gitignore dosyasına eklemek. nelson.cloud blogundaki bir yazı, Git'in aslında üç farklı yok sayma düzeyini desteklediğini ve her birinin başka bir sorunu çözdüğünü hatırlatıyor.
Proje düzeyi: .gitignore
Bilinen seçenek, depo kökündeki .gitignore dosyasıdır. Kodla birlikte Git'e işlenir, böylece tüm katkıcılar aynı kuralları alır. Burada listelenen dosyalar Git komutları çalıştığında dikkate alınmaz; bu yüzden derleme çıktıları, bağımlılıklar ve ekibin tamamının yok saymak istediği düzenleyici dosyaları için doğru yer burasıdır.
Depo düzeyi: .git/info/exclude
İkinci dosya .git/info/exclude. Her deponun .git dizininde bulunur ama yapılan değişiklikler Git'e hiçbir zaman işlenmez. Yeni bir depoda genellikle yalnızca birkaç yorum satırı içerir. Tek bir depoya özel kişisel istisnalar için tasarlanmıştır: sizin için yararlı olan ama projede yeri olmayan bir notes.txt gibi. Bu tür kayıtları buraya eklemek .gitignore dosyasını düzenli tutar ve başkalarının paylaşmadığı tercihleri yayımlamaz.
Makine düzeyi: ~/.config/git/ignore
Üçüncü düzey küreseldir. ~/.config/git/ignore dosyası ev dizininde durur ve makinedeki her depo için geçerlidir; hiçbir projeye ait değildir. Klasik kullanım işletim sistemi gürültüsüdür — macOS'ta bu .DS_Store demektir. Konum değiştirilebilir: git config --global core.excludesFile ~/.gitignore_global komutu Git'i başka bir dosyaya yönlendirir, git config --global --unset core.excludesFile ise varsayılana döner.
Hangi dosyanın yok saydığını bulmak
Bir dosya Git için beklenmedik biçimde görünmez olduğunda, git check-ignore -v komutu eşleşen kuralı tam olarak gösterir. .DS_Store için çıktı, sorumlu düzeye bağlı olarak .gitignore:1:.DS_Store, .git/info/exclude:7:.DS_Store ya da ~/.config/git/ignore:2:.DS_Store biçiminde olabilir. Dosyayı yok sayan bir şey yoksa komut hiçbir çıktı vermez.
SiTech — AI destekli web geliştirme
Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.