Commande git submodule
git submoduleLa commande est utilisée pour gérer des projets qui contiennent d'autres dépôts Git.
git submoduleLa commande est très utile pour les grands projets ou les situations où vous devez intégrer des bibliothèques externes dans votre projet. En utilisant des sous-modules, vous pouvez gérer des bibliothèques externes dans le cadre de votre projet sans avoir à les fusionner directement dans le dépôt principal.
Utilisation détaillée
1. Initialiser les sous-modules
git submodule init
Cette commande initialise tous les sous-modules dans le fichier de configuration. Elle définit les URL et les chemins des sous-modules à partir des informations du fichier .gitmodules, mais elle ne télécharge pas le contenu des sous-modules.
Utilisation courante :Après avoir cloné un dépôt qui contient des sous-modules, exécutez cette commande pour initialiser les sous-modules.
git clone <repo-url> cd <repo-dir> git submodule init
2. Mettre à jour le sous-module
git submodule update
Cette commande récupère le contenu du sous-module depuis le dépôt distant du sous-module et le met à jour vers le commit spécifié dans le fichier .gitmodules.
Utilisation courante :Exécutez cette commande après avoir initialisé les sous-modules, ou lorsque vous devez mettre à jour le contenu du sous-module.
git submodule update
3. Ajouter un sous-module
git submodule add <repo-url> [<path>]
Cette commande ajoute le dépôt Git spécifié au dépôt actuel en tant que sous-module.
<repo-url>est l'adresse du dépôt du sous-module,<path>Le chemin du sous-module dans le dépôt principal (facultatif ; s'il n'est pas spécifié, le nom du dépôt du sous-module est utilisé comme chemin par défaut).
Usage courant :Ajouter la bibliothèque externe au projet en tant que sous-module.
git submodule add https://github.com/example/libfoo.git libfoo
4. Supprimer le sous-module
git submodule deinit [<path>] git rm [<path>]
git submodule deinit <path>: Supprimer le sous-module de.git/configsupprimez-le du fichier, et supprimez les fichiers dans le répertoire du sous-module.git rm <path>: Supprimez la référence du sous-module du dépôt principal et validez les modifications.
Usage courant :Supprimer un sous-module du dépôt principal.
git submodule deinit libfoo git rm libfoo rm -rf .git/modules/libfoo5. Lister les sous-modules
git submodule
Lister tous les sous-modules dans le dépôt actuel, ainsi que leurs hachages de commit et leurs chemins.
Usage courant :Afficher l'état de tous les sous-modules du projet.
git submodule
6. Mettre à jour tous les sous-modules
git submodule update --recursive --remote
--recursive: Mettre à jour récursivement tous les sous-modules (y compris les sous-modules des sous-modules).--remote: Récupérer les dernières modifications depuis le dépôt distant du sous-module.
Utilisation courante :Lorsque des sous-modules contiennent d'autres sous-modules, assurez-vous que tous les niveaux de sous-modules sont mis à jour vers la dernière version.
git submodule update --recursive --remote
7. Vérifier l'état des sous-modules
git submodule status
Afficher l'état actuel des sous-modules, y compris le hash du commit actuel et le chemin, ainsi que la présence de modifications non validées.
Utilisation courante :Afficher l'état actuel des sous-modules.
git submodule status
autres extensions