cClaude.rocks ☕ Le blog

[Nouvelles technologies, sciences et coups de gueule…]

Menu

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…

ᦿ


ℹ 2006 - 2022 | 🏠 Accueil du domaine | 🏡 Accueil du blog