Ana Sayfa

Git'in Sihirli Dosyaları: Depo Davranışını Kontrol Etme

1 dk okuma

Git depolarında, projenin davranışını ve dosya işleme şeklini kontrol eden özel "sihirli dosyalar" bulunur. Bu dosyalar, .git/ dizinindeki yapılandırma dosyalarından farklı olarak, kodla birlikte depolanır ve tüm geliştiriciler için geçerli olur. Özellikle Git depolarıyla çalışan araçlar geliştirirken bu dosyaların kurallarına uymak büyük önem taşır. Başlıca sihirli dosyalar .gitignore, .gitattributes ve .lfsconfig'dir.

.gitignore dosyası, Git'in izlememesi gereken dosya ve dizin kalıplarını belirtmek için kullanılır. Her satırda bir kalıp bulunur ve joker karakterler, dizin işaretleyicileri ve olumsuzlama (!important.log) desteklenir. Git, her dizindeki .gitignore'u, yerel .git/info/exclude dosyasını ve genel .git/ignore dosyasını belirli bir sırayla kontrol eder. Genel ignore dosyaları, işletim sistemine özgü dosyaları (örn. .DS_Store) projenin .gitignore'unu kirletmeden hariç tutmak için idealdir. GitHub, GitLab gibi platformlar da bu kurallara saygı duyar ve göz ardı edilen dosyaları web arayüzünde göstermez.

.gitattributes ise Git'e belirli dosyaları nasıl ele alması gerektiğini söyler. Bu dosya aracılığıyla filtreler, diff sürücüleri, birleştirme sürücüleri, satır sonu normalizasyonu ve dil algılama geçersiz kılmaları gibi ayarlar yapılandırılabilir. Örneğin, *.sh text eol=lf ile shell betiklerinin satır sonları LF olarak normalleştirilebilir veya *.png binary ile PNG dosyalarının ikili olarak ele alınması sağlanır, böylece Git bu dosyalar için diff veya birleştirme yapmaz. GitHub Linguist gibi araçlar da dil algılamayı geçersiz kılmak için .gitattributes dosyasını kullanır. Son olarak, .lfsconfig dosyası, Git LFS (Large File Storage) yapılandırmalarını depo ile birlikte taşımak için kullanılır ve LFS uç nokta URL'si veya transfer ayarları gibi seçenekleri belirler. Bu sihirli dosyalar, Git projelerinin daha düzenli, tutarlı ve verimli yönetilmesini sağlar.

İçgörü

Bu dosyalar, Git depolarının davranışını standartlaştırarak ve dosya yönetimini otomatikleştirerek ekip çalışmasını kolaylaştırır ve proje tutarlılığını artırır.

Kaynak