Si un fichier de votre dossier de travail Mac contient du texte commençant par version https://git-lfs.github.com/spec/v1, vous voyez son pointeur Git LFS plutôt que le contenu du gros fichier. Dans Terminal, accédez au dépôt, assurez-vous que Git LFS est installé et initialisé, puis exécutez git lfs pull. Cette commande télécharge les objets LFS pour la branche extraite et met à jour les fichiers de travail. Elle ne peut restaurer que le contenu disponible depuis le dépôt distant configuré ou déjà présent dans le cache LFS local. FAQ Git LFS

1. Ouvrir le dépôt dans Terminal et confirmer que le fichier est un pointeur

Ouvrez Terminal et placez-vous dans le répertoire du dépôt. Si vous n'êtes pas sûr de l'emplacement du dossier, tapez cd (en incluant l'espace à la fin), faites glisser le dossier du dépôt depuis le Finder dans la fenêtre de Terminal, puis appuyez sur Entrée. Vérifiez que vous êtes dans un arbre de travail Git et inspectez le fichier en remplaçant son chemin réel :

git status --short
head -n 3 'path/to/file.ext'

Un pointeur typique contient une ligne de version, une ligne oid sha256: et une ligne de taille. Git LFS stocke ce petit pointeur dans Git tandis que le contenu réel réside dans le stockage LFS. Voir le pointeur dans un éditeur de texte ne signifie pas que l'éditeur peut récupérer l'objet manquant ; la récupération s'effectue via Git LFS. Vue d'ensemble de Git LFS

2. Installer et initialiser Git LFS si nécessaire

Vérifiez si la commande est disponible :

git lfs version

Si Terminal indique que lfs n'est pas une commande Git, installez Git LFS à l'aide d'une méthode d'installation fiable pour votre Mac, puis ouvrez une nouvelle fenêtre de Terminal et vérifiez à nouveau. Le projet indique git lfs install comme configuration unique pour un compte utilisateur ; exécutez-la pour configurer les filtres et les hooks LFS de Git :

git lfs install

Cette configuration est distincte du téléchargement du contenu des fichiers. Si LFS a été ignoré lors d'un clone ou d'un checkout, la FAQ de Git LFS recommande explicitement d'exécuter git lfs pull pour remplacer les pointeurs dans l'arbre de travail. FAQ Git LFS

3. Télécharger et restaurer les fichiers de la branche actuelle

Depuis le répertoire du dépôt, exécutez :

git lfs pull

La commande récupère le contenu LFS pour la référence actuelle à partir du dépôt distant par défaut et extrait les fichiers requis dans l'arbre de travail. C'est l'étape de récupération la plus simple pour un clone ordinaire où le pointeur appartient à la branche que vous avez extraite. Attendez la fin de la commande et lisez les éventuelles erreurs ; un pointeur restant par la suite signifie que le téléchargement ou l'extraction ne s'est pas terminé pour ce fichier. Référence des commandes Git LFS

Si vous aviez déjà récupéré l'objet auparavant mais que le fichier de travail contient toujours un pointeur, essayez :

git lfs checkout -- 'path/to/file.ext'

git lfs checkout utilise le contenu disponible dans le stockage LFS local ; elle ne télécharge rien. Elle restaure les fichiers manquants ou les fichiers contenant le pointeur correspondant, et n'écrase pas les fichiers modifiés. Cela la rend utile après une récupération (fetch) réussie, mais elle ne peut pas récupérer un objet qui n'est ni en cache localement ni récupéré avec succès. Manuel git-lfs-checkout

4. Si le fichier affiche toujours un pointeur

Vérifiez si le chemin attendu est suivi par LFS et si le dépôt a un dépôt distant configuré :

git lfs ls-files
 git remote -v

Si git lfs ls-files ne liste pas le fichier, confirmez que les règles de .gitattributes validées de la branche actuelle marquent son chemin pour LFS. Exécuter simplement git lfs track maintenant ne permet pas de récupérer l'historique du contenu, et changer les règles de suivi ne transforme pas un blob Git ordinaire en un objet LFS. Git LFS indique que les fichiers déjà présents dans un dépôt nécessitent une renormalisation et un commit pour être convertis ; ne faites pas cette modification de dépôt simplement pour récupérer un fichier. FAQ Git LFS

Si le fichier est listé, confirmez que vous êtes sur la branche contenant la version souhaitée et que le dépôt distant configuré est bien le dépôt qui stocke ses objets LFS. Pour un dépôt distant configuré différent, récupérez ce dépôt distant puis restaurez à partir du cache local :

git lfs fetch 'remote-name'
git lfs checkout -- 'path/to/file.ext'

git lfs fetch télécharge les objets mais ne met pas à jour la copie de travail ; git lfs checkout effectue cette mise à jour locale. La récupération de la référence actuelle utilise par défaut le dépôt distant par défaut, qui suit les règles de sélection de dépôt distant de Git. Manuel git-lfs-fetch

Un échec de pull peut indiquer un problème de connexion, d'authentification, d'accès ou d'objet manquant. Résolvez l'accès au serveur Git/LFS configuré et réessayez. Si le serveur LFS n'a plus l'objet, le pointeur seul ne peut pas reconstruire le fichier d'origine : demandez à un responsable du dépôt si une autre branche, une sauvegarde, un clone ou un stockage LFS autorisé le possède. Évitez de remplacer le pointeur par un contenu deviné ou de le commiter comme s'il s'agissait du fichier restauré.

Confirmer la récupération

Après un pull ou un checkout réussi, inspectez à nouveau le fichier. Ses premières lignes ne doivent plus être les métadonnées du pointeur LFS ; utilisez l'application appropriée pour le type de fichier afin de confirmer que le contenu récupéré s'ouvre. Vérifiez également git status --short. Une modification de contenu peut être attendue si votre copie de travail contenait le pointeur, mais vérifiez le chemin indiqué avant de préparer (stage) ou de valider (commit) quoi que ce soit.

Sources