Commande git submodule

Opérations de base Git


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/libfoo
5. 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

Opérations de base Git

autres extensions