Terminal and version control imagery representing Git LFS object sync on a cloud macOS host

2026 location Mac à la journée pour dépôts Git massifs et Git LFS :
clone peu profond, partial clone et calendrier bande passante sur 1–3 jours

Sur une fenêtre de une à trois journées, un mono-dépôt Git LFS échoue souvent avant Xcode : topologie de clonage, tirages LFS par vagues et espace libre dictent le mur du temps. Ce guide s’adresse aux petites équipes qui veulent un macOS natif jetable : trois douleurs, une matrice, sept étapes, trois métriques, avec liens vers stabilité des téléchargements, région & latence, FAQ SSH/VNC et nœud CI loué.

01. Trois douleurs : clone complet, pics LFS, dérive sparse

1) Clone complet qui mange le jour 0 : les mono-dépôts portent l’historique binaire ; avec RTT 120–220 ms, un git clone naïf peut prendre huit à quatorze heures. Sans inventaire profondeur + LFS, les relances parallèles amplifient les 429.

2) Concurrence LFS par défaut : un git lfs pull massif crée des pics d’écriture puis s’effondre ; Spotlight et l’indexation Xcode se battent pour l’IO. Sans DerivedData isolé, l’arbre semble prêt mais Archive échoue (smudge).

3) Sparse vs CI : fixtures manquantes = tests flaky. Versionnez les règles et alignez les flags CI. TLS d’entreprise ? Lisez d’abord stabilité téléchargement.

02. Matrice : shallow vs blobless/partial vs sparse-checkout

Boîte 1–3 jours : shallow pour derniers commits, blobless/partial pour histoire profonde, sparse pour un sous-arbre d’app. Couplez avec latence & région.

Axe Shallow blobless/partial sparse
Portée historiquefaible hors profondeurmoyenne, blobs différésmoyenne, chemins
Charge jour 0faible–moyennemoyenne + fetchfaible si couplé
LFSsouvent shallow→LFSfetch à surveillersurface réduite
Risquetags/sous-modulesclients ancienschemins oubliés

03. Sept étapes

  1. Inventaire : git rev-list --count, git lfs ls-files -s.
  2. Topologie : --filter=blob:none + --depth, sparse si besoin.
  3. Baseline : débit, premier checkout, git count-objects -vH.
  4. LFS par vagues : chemins, GIT_LFS_CONCURRENT_TRANSFERS 3–4.
  5. DerivedData : dossier dédié, marge Archive.
  6. Triage : TLS, 429, smudge séparément.
  7. Effacement : dépôt, cache LFS, révoquer PAT.
git clone --filter=blob:none --single-branch --branch main https://example.com/org/mono.git
export GIT_LFS_CONCURRENT_TRANSFERS=3
git lfs pull --include="ios/**"

04. Calendrier bande passante 1–3 jours

Durée J0 J1 J2
1 jourblobless/shallow + LFS minimal
2 joursclone + LFS principalLFS restant, tests
3 joursclone, inventaire, CILFS completArchive, wipe

Alignez avec guide CI : la location ne remplace pas la pipeline.

05. Commandes & backoff

Partial : git fetch avant rebuild. Dépendances : miroirs & timeouts.

06. Métriques & mythes

  • M1 : 41–58 % des échecs jour 0 = clone/LFS/disque mal classés.
  • M2 : LFS 8→3–4 : ~19–31 % moins de retries.
  • M3 : 18–35 Go libres avant Archive.

07. Portable seul vs sprint Mac natif

Le chemin le moins risqué reste macOS natif pour clone, LFS et Archive. Accès distant, tarifs, Xcode Cloud.