Git LFS (Large File Storage), resimler, videolar, veri setleri ve binary'ler gibi büyük dosyaları sürümlemek için bir Git uzantısıdır. Bu dosyaları doğrudan Git'te depolamak yerine, LFS işaretçileri depoda ve gerçek dosyaları uzak sunucuda depolar.
winget install GitLFS
Veya git-lfs.github.com adresinden indirin
brew install git-lfs
sudo apt-get install git-lfs
git lfs install
Git'e hangi dosyaları LFS ile izleyeceğini söyleyin:
# Tüm PSD dosyalarını izle
git lfs track "*.psd"
# Tüm MP4 dosyalarını izle
git lfs track "*.mp4"
# Bir dizindeki tüm dosyaları izle
git lfs track "assets/*"
# Belirli büyük dosyayı izle
git lfs track "dataset.csv"
Bu .gitattributes dosyasını oluşturur veya günceller:
*.psd filter=lfs diff=lfs merge=lfs -text
*.mp4 filter=lfs diff=lfs merge=lfs -text
# .gitattributes ekle
git add .gitattributes
# Büyük dosyalarınızı ekleyin
git add large-file.psd
# Commit
git commit -m "LFS ile büyük dosya ekle"
# Push (LFS dosyaları otomatik yüklenir)
git push origin main
git lfs track
git lfs ls-files
git lfs status
# Tüm LFS dosyalarını çek
git lfs pull
# Belirli branch'i çek
git lfs pull origin feature-branch
git lfs fetch --all
LFS, gityar'da varsayılan olarak etkindir. Doğrulamak için:
LFS dosyaları şurada depolanır:
data/lfs/
app.ini içinde depolama limitlerini yapılandırın:
[repository.upload]
LFS_MAX_FILE_SIZE = 104857600 # 100MB
LFS_MAX_STORAGE = 10737418240 # Depo başına 10GB
git lfs migrate kullanın:
# Tüm PSD dosyalarını taşı
git lfs migrate import --include="*.psd"
# Birden fazla dosya türünü taşı
git lfs migrate import --include="*.psd,*.mp4,*.zip"
# Geçmişi de taşı ve yeniden yaz
git lfs migrate import --include="*.psd" --everything
⚠️ Uyarı: Geçmişi yeniden yazmak commit hash'lerini değiştirir!
git push --force
.gitattributes dosyasını güncel tutun"LFS nesneleri bulunamadı":
git lfs fetch --all
git lfs checkout
"Yetersiz disk alanı":
git lfs prune"Kimlik doğrulama başarısız":
Yavaş clone/pull:
git clone --depth 1GIT_LFS_SKIP_SMUDGE=1 git clonegit lfs pullDosyalar gerçek içerik yerine işaretçi olarak görünüyorsa:
# LFS dosyalarını indir
git lfs pull
# Dosyayı doğrula
git lfs fsck
Eski LFS nesnelerini kaldırın:
# Nelerin silineceğini önizle
git lfs prune --dry-run
# Eski nesneleri sil
git lfs prune
| Komut | Açıklama |
|---|---|
git lfs install |
LFS'yi başlat |
git lfs track |
Dosya kalıplarını izle |
git lfs ls-files |
LFS dosyalarını listele |
git lfs status |
LFS durumunu göster |
git lfs pull |
LFS dosyalarını indir |
git lfs fetch |
LFS nesnelerini getir |
git lfs push |
LFS nesnelerini push et |
git lfs prune |
Eski nesneleri temizle |
git lfs migrate |
Dosyaları LFS'ye taşı |
git lfs fsck |
LFS nesnelerini doğrula |