Aller au contenu
English
Compte : non connecté, synchronisation possible Mon apprentissage
Selectionner le thème
English

Multi-dépôts et transfert Git : submodules, subtree, bundle

  • 10 min

Par mis à jour le

Améliorer cette page

Certains projets incluent d'autres projets. Une bibliothèque partagée, un thème commun, un outil interne : quand plusieurs dépôts doivent coexister, Git propose deux approches différentes, les submodules et le subtree. Ces deux mécanismes répondent au même besoin avec des compromis distincts.

Le bundling répond à un besoin différent : transférer un dépôt complet (avec tout l'historique) sans passer par un serveur, clé USB, réseau isolé, air-gapped.

BesoinOutilGuide
Inclure une bibliothèque tierce avec son propre dépôtgit submoduleSubmodules
Incorporer un sous-projet dans le dépôt principalgit subtreeSubtree
Transférer un dépôt sans réseau (USB, air-gap)git bundleBundling
Éviter de re-saisir les credentials à chaque pushcredential.helperStockage des credentials

Submodules enseigne git submodule add, init, update et foreach pour inclure un dépôt dans un autre avec un cycle de vie indépendant, avec git submodule en commande centrale. Subtree montre git subtree add, pull et push pour incorporer un sous-projet directement dans l'arbre du dépôt principal.

Bundling emballe un dépôt complet avec git bundle create, verify et unbundle, pour le transférer sans accès réseau. Stockage des credentials clôt le module avec cache, store, le trousseau macOS et Git Credential Manager, pour ne plus saisir ses identifiants à chaque opération.

  • git submodule update --init --recursive est la commande à lancer après un git clone qui contient des submodules, sans elle, les sous-dossiers sont vides
  • git subtree add --prefix=lib/ <url> main --squash incorpore un dépôt distant en un seul commit squashé, préférable pour garder l'historique compact
  • git bundle create repo.bundle --all crée une archive complète du dépôt (tous les objets, toutes les branches)
  • git credential-manager (GCM) est la méthode recommandée sur Windows, macOS et Linux modernes, stocke les tokens OAuth de façon sécurisée
  • Le fichier ~/.netrc (store en clair) ne doit jamais être utilisé pour des tokens de production

Ce projet vous est utile ?

Les guides, formations, quiz et labs restent gratuits. Si vous les utilisez régulièrement, vous pouvez contribuer à leur maintenance et à leur développement.

Devenir membre de soutien (nouvel onglet) Soutenir une fois (nouvel onglet) En savoir plus

Suivez aussi le projet sur LinkedIn