Git
LFS nedir?
Git LFS ile büyük dosya yönetimini öğrenirsin.
Git LFS nedir?
Git normalde her dosyanın tüm geçmiş sürümlerini .git klasöründe saklar. Büyük ikili dosyalar (videolar, makine öğrenmesi modelleri, grafikler) eklendikçe depo boyutu hızla şişer ve klonlama çok yavaşlar. Git LFS (Large File Storage), büyük dosyaların gerçek içeriğini harici bir LFS sunucusunda saklayarak bu sorunu çözer.
version https://git-lfs.github.com/spec/v1
oid sha256:4b3f8a...c12a
size 104857600
Git deposunda dosyanın kendisi yerine yalnızca SHA-256 özeti ve boyutunu içeren küçük bir işaretçi (pointer) tutulur.
İşaretçi (pointer) dosyası anatomisi
İşaretçi dosyası metin tabanlıdır ve yaklaşık 130 bayt boyutundadır. İçinde dosya format sürümü (version), benzersiz SHA-256 hash değeri (oid sha256) ve bayt cinsinden dosya boyutu (size) yer alır. Sen checkout yaptığında LFS bu işaretçiyi okur ve gerçek dosyayı indirip çalışma alanına koyar.
git lfs pointer --file=model.bin
Böylece geliştiriciler tüm geçmiş sürümleri değil, yalnızca üzerinde çalıştıkları güncel büyük dosyayı indirir.
Uygulama İşaretçi dosyasını yapılandır
pointer.txt dosyasına oid sha256:e3b0c442 ve size 1024 satırlarını ekleyerek işaretçi yapısını tamamla.
Örnek çözümü göster
cat << 'EOF' > pointer.txt
version https://git-lfs.github.com/spec/v1
oid sha256:e3b0c442
size 1024
EOF
cat pointer.txt
Kendini test et
-
Git LFS kullanıldığında büyük dosyalar yerel Git deposunda nasıl saklanır?
- Dosyalar çalışma dizininden tamamen gizlenir
- Dosyalar sıkıştırılarak .zip arşivi halinde saklanır
- Gerçek dosya yerine SHA-256 ve boyut içeren küçük bir işaretçi tutulur
- Dosyanın yalnızca ilk 100 satırı tutulur, gerisi silinir
Cevabı göster
Gerçek dosya yerine SHA-256 ve boyut içeren küçük bir işaretçi tutulur — Git LFS, büyük dosyanın gerçek verisini harici depolamada tutarken depoda yalnızca hafif bir işaretçi dosyası saklar.
-
LFS işaretçi metnini üret
git lfs ____ --file=veri.bin
Cevabı göster
git lfs pointer --file=veri.bin
-
LFS kavramları
- Git LFS
- Büyük ikili dosyaları verimli saklar
- Pointer dosyası
- SHA-256 ve boyut içeren küçük metin
- Depo boyutu
- Şişmeden hafif ve hızlı kalır
- oid sha256
- Büyük dosyanın benzersiz hash'idir
Sıradaki ders: lfs install