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.
Quel outil pour quel besoin ?
Section intitulée « Quel outil pour quel besoin ? »| Besoin | Outil | Guide |
|---|---|---|
| Inclure une bibliothèque tierce avec son propre dépôt | git submodule | Submodules |
| Incorporer un sous-projet dans le dépôt principal | git subtree | Subtree |
| Transférer un dépôt sans réseau (USB, air-gap) | git bundle | Bundling |
| Éviter de re-saisir les credentials à chaque push | credential.helper | Stockage des credentials |
Guides de cette section
Section intitulée « Guides de cette section » Submodules git submodule add, init, update, foreach : inclure un dépôt Git dans un autre avec un cycle de vie indépendant.
Subtree git subtree add, pull, push : incorporer un sous-projet directement dans l'arbre du dépôt principal.
Bundling git bundle create, verify, unbundle : emballer un dépôt complet pour le transférer sans accès réseau.
Stockage des credentials cache, store, osxkeychain, Git Credential Manager : ne plus saisir ses identifiants à chaque operation.
À retenir
Section intitulée « À retenir »git submodule update --init --recursiveest la commande à lancer après ungit clonequi contient des submodules — sans elle, les sous-dossiers sont videsgit subtree add --prefix=lib/ <url> main --squashincorpore un dépôt distant en un seul commit squashé — préférable pour garder l’historique compactgit bundle create repo.bundle --allcré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
Prochaines étapes
Section intitulée « Prochaines étapes » Opérations Git Push rejeté, données perdues, commit sur la mauvaise branche : les guides de survie Git.
Vue d'ensemble des outils avancés Tous les outils avancés Git en un coup d'œil.