git submodule
git
Syntaxe
git submodule update --init --recursiveÉpingle un autre dépôt à un commit précis dans le vôtre ; un clone ordinaire laisse le dossier vide jusqu'à update --init, et le parent suit un commit, pas une branche.
Options courantes
| Option | Signification |
|---|---|
| add <url> <path> | pin another repository at a path |
| update --init | fill in a submodule folder that a clone left empty |
| --recursive | go into submodules of submodules |
| update --remote | move the pin to the tip of the tracked branch |
| status | the commit each submodule sits at |
| deinit <path> | unregister it |
| foreach <cmd> | run a command in each one |
Exemples
git submodule update --init --recursivethe command that fills empty submodule folders after a clone
git submodule add https://github.com/x/lib.git vendor/libadds a dependency as a submodule
git submodule update --remoteupdates the pinned commit to the branch tip
Ce qui embrouille, c’est qu’annuler a plusieurs formes : déplacer là où pointe une branche n’est pas ajouter un commit qui l’inverse.
Comment lire
- Les crochets [ ] marquent une partie facultative.
- Les points de suspension … signifient qu’on peut en mettre plusieurs.
- Les options sont sensibles à la casse : sur certaines commandes, -r et -R ne font pas la même chose.
Questions fréquentes
Q. Que fait git submodule ?
Épingle un autre dépôt à un commit précis dans le vôtre ; un clone ordinaire laisse le dossier vide jusqu'à update --init, et le parent suit un commit, pas une branche.
Q. Comment l’écrire ?
git submodule update --init --recursive — les crochets marquent ce qui est facultatif.
Q. Combien d’options valent la peine ?
Il y en a 7 ici ; la liste complète est dans man git. Cette commande relève de git.
Commandes liées
page man: man git-submodule