Perche Git fatica con file grandi
Git memorizza snapshot completi di oggetti. Quando si committa un binario da 100 MB, l'intero 100 MB viene aggiunto al repo.
Cosa fa LFS
Git Large File Storage (LFS) sostituisce file grandi nel working tree con piccoli file di puntatore. Il contenuto vero vive su un server LFS separato.
Installazione
# macOS / Homebrew
brew install git-lfs
# Debian / Ubuntu
sudo apt install git-lfs
git lfs install
Tracciare i file
git lfs track "*.psd"
git lfs track "*.mp4"
git lfs track "assets/raw/**"
git add .gitattributes
git commit -m "Track binaries with LFS"
Verificare il tracking
git lfs ls-files
git lfs status
Migrare file esistenti
git lfs migrate import --include="*.psd,*.mp4" --everything
Quote e prezzi
GitHub da 1 GB di storage e 1 GB di banda mensile gratuiti.
Clonare con LFS
git clone https://git.example.com/repo.git
git lfs pull
GIT_LFS_SKIP_SMUDGE=1 git clone <url>
Insidie comuni
- Dimenticare di committare
.gitattributes. - Tracciare dopo aver committato.
- Gli oggetti LFS vivono in
.git/lfs.