Pourquoi Git a du mal avec les gros fichiers
Git stocke des instantanés complets d'objets. Quand vous commitez un binaire de 100 Mo, les 100 Mo entiers sont ajoutés au repo.
Ce que fait LFS
Git Large File Storage (LFS) remplace les gros fichiers dans votre arbre de travail par de petits fichiers pointeurs texte.
Installation
brew install git-lfs
sudo apt install git-lfs
git lfs install
Suivre les fichiers
git lfs track "*.psd"
git lfs track "*.mp4"
git lfs track "assets/raw/**"
git add .gitattributes
git commit -m "Track binaries with LFS"
Vérifier le suivi
git lfs ls-files
git lfs status
Migrer les fichiers existants
git lfs migrate import --include="*.psd,*.mp4" --everything
Quotas et tarifs
GitHub donne 1 Go de stockage et 1 Go de bande passante mensuelle gratuite.
Cloner avec LFS
git clone https://git.example.com/repo.git
git lfs pull
GIT_LFS_SKIP_SMUDGE=1 git clone <url>
Pièges courants
- Oublier de commiter
.gitattributes. - Suivre après avoir commité.
- Les objets LFS ne sont pas dans
.git/objects.