Comment migrer un référentiel git pour utiliser Git Large File Storage
Si vous rencontrez cette erreur en poussant un dĂ©pĂŽt existant ou un gros fichier sur GitHub par exemple, et que vous avez un message dâinsulte comme celui ci-dessous, voici comment configurer le systĂšme de stockage de fichiers volumineux (LFS) de git et migrer votre historique git pour prendre en compte ce changement.
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
Attention, il se peut que le message ne soit pas aussi explicite en fonction du serveur. Par ailleurs, il est prĂ©fĂ©rable de migrer avant dâatteindre ce mur pour des questions de performances.
Installation de lâextension Git LFS
Sous Linux, pour installer lâextension Git LFS, vous devez simplement utiliser :
sudo apt install git-lfs
Configuration de Git LFS votre utilisateur
git lfs install
Choisir les fichiers qui seront traités par Git LFS
- Suivre les fichiers par extensions (par type)Â :
git lfs track "*.zip"
- Suivre un groupe de fichiers dâaprĂšs un chemin :
git lfs track "assets/*"
- Suivre tous les fichiers dâun dossier de maniĂšre rĂ©cursive :
git lfs track "assets/**/*"
- Suivre un fichier dâaprĂšs son chemin :
git lfs track "path/to/file"
git lfs track
ajoutera les fichiers suivis par Git LFS Ă .gitattributes
. Il est indispensable dâajouter ensuite .gitattributes
à votre dépÎt git
.
git add .gitattributes
Le suivi des fichiers ne convertit pas automatiquement les fichiers gérés par git
depuis votre historique git
(et encore moins sur les autres branches).
Migration de lâhistoire dâun dĂ©pĂŽt Git
Si vous avez des fichiers existants dans votre historique Git ou dans dâautres branches, vous devez migrer ces fichiers pour quâils soient Ă©galement suivis par Git LFS. Git LFS fournit une commande git lfs migrate
avec différentes options permettant de répondre à différentes situations.
Avant dâeffectuer votre migration, vous pouvez effectuer un essai avec git lfs migrate info [options]
.
Utilisez lâoption --everything
pour effectuer une migration dans chaque branche.
Si vous ne voulez migrer que les fichiers que vous avez ajoutés auparavant avec git lfs track
, vous les ajouterez avec lâoption --include="*.zip,src/assets"
séparés par des virgules.
Voici un exemple qui effectue une migration pour tous les fichiers Zip dâun dĂ©pĂŽt :
# Lance un essai de votre migration
git lfs migrate info --everything --include="*.zip"
# Effectue la migration
git lfs migrate import --everything --include="*.zip" --verbose
Maintenant, vous pouvez pousser (git push
) votre dépÎt vers le serveur.
RĂ©fĂ©rences permettant dâaller beaucoup plus loinâŠ
- https://notiz.dev/blog/migrate-git-repo-to-git-lfs
- Migrer vers Git LFS : gérer facilement les gros fichiers pour des projets de Deep Learning
- Pourquoi Git et Git-LFS ne suffisent pas à résoudre la crise de la reproductibilité du Machine Learning
኿