Aller au contenu
Développement medium

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

3 min de lecture

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
  • 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 site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn