Gestiunea Fișierelor Mari cu Git LFS (Large File Storage) în Git

Staging și salvare Extensie Standard Git LFS

Ghid complet pentru Git LFS: gestionarea fișierelor binare masive (video, modele AI, arhive, imagini) prin fișiere pointer fără umflarea depozitului .git.

Sintaxă comandă
git lfs install | git lfs track '*.psd' '*.mp4' | git lfs ls-files

Git a fost proiectat pentru a urmări modificări de text linie cu linie. Atunci când comiteți fișiere binare mari (videoclipuri .mp4, modele de Machine Learning .bin, fișiere grafice .psd sau arhive .zip), Git nu poate calcula diferențe (diffs); el stochează o copie nouă integrală a întregului fișier la fiecare commit! În timp, operațiunile de git clone durează ore întregi. Git LFS (Large File Storage) rezolvă această limitare.

Cum funcționează Git LFS în culise
# 1. În depozitul Git '.git', fișierul binar uriaș este înlocuit cu un POINTER text minuscul de 130 octeți:
# version https://git-lfs.github.com/spec/v1
# oid sha256:4d7a214614ab2935c943f9e0ff69d22eadbb8f32b1218128f550ef8a37eedb3c
# size 2548291072 (2.5 GB)

# 2. Fișierul fizic real de 2.5 GB este încărcat separat pe un server cloud de stocare (S3 / GitHub LFS).
# La clonare, dezvoltatorii descarcă doar versiunea activă curentă, nu întreg istoricul de GB!

Configurarea Git LFS pas cu pas

Urmărirea tipurilor de fișiere mari
# Pasul 1: Activăm LFS o singură dată pe mașina locală:
git lfs install

# Pasul 2: Specificăm extensiile care trebuie gestionate prin LFS:
git lfs track "*.psd"
git lfs track "modele_ai/*.bin"
git lfs track "*.mp4"

# Această comandă generează automat fișierul '.gitattributes'.
# Adăugați fișierul .gitattributes în commit:
git add .gitattributes
git commit -m "chore: configurare Git LFS pentru fisiere media"

# Pasul 3: Lucrați normal cu fișierele:
git add imagini/banner_4k.psd
git commit -m "feat: adaugat banner 4k"
git push origin main

Comenzi Utile de Diagnostic LFS

  • git lfs ls-files: Listează toate fișierele din branch-ul curent care sunt gestionate prin LFS.
  • git lfs pull: Descarcă la cerere conținutul binar al fișierelor LFS (dacă ați clonat proiectul fără ele).