Liste des submodules de Git

John Wachira 15 février 2024
  1. Qu’est-ce qu’un sous-module Git
  2. Créer un sous-module Git
  3. Commandes Git courantes pour les sous-modules
  4. Lister les sous-modules dans Git
Liste des submodules de Git

Dans cet article, nous aborderons les sous-modules Git. Nous couvrirons ce qu’ils sont, le but des sous-modules et le flux de travail général.

Les sous-modules Git nous permettent de conserver un référentiel en tant que sous-répertoire d’un autre référentiel. En termes plus simples, les sous-modules sont une référence à d’autres référentiels à certains moments.

Qu’est-ce qu’un sous-module Git

Si l’explication ci-dessus n’a pas clarifié les choses, celle-ci devrait le faire.

Un sous-module Git peut être assimilé à un enregistrement dans un référentiel hôte qui fait référence à un commit dans un autre référentiel. En général, les sous-modules sont statiques et suivent les commits spécifiés.

Ils ne suivent pas les branches ou les références et ne sont pas mis à jour lorsque des modifications sont transmises au référentiel hôte.

Git crée un fichier .gitmodules à chaque fois que nous créons un sous-module dans notre repo. Le fichier contient les métadonnées et le mappage du sous-module avec notre dépôt.

La création de plusieurs sous-modules entraînera la création de plusieurs fichiers gitmodules.

Créer un sous-module Git

La première question que nous devons nous poser est de savoir quand créer un sous-module ?

Voici quelques scénarios dans lesquels il est préférable de créer un sous-module Git.

  1. Lorsqu’un sous-projet ou un composant externe change rapidement, il est préférable de verrouiller votre code sur un commit spécifique. Il en va de même si vous anticipez des changements à venir susceptibles de casser l’API.
  2. Lors du suivi des composants en tant que dépendances du fournisseur. Cela se produit généralement lorsque nous ne mettons pas à jour régulièrement un composant spécifique.
  3. Lorsque nous voulons intégrer des changements d’un tiers à un moment précis. Cela fonctionne mieux lorsque vous n’avez pas de mises à jour fréquentes.

Commandes Git courantes pour les sous-modules

Examinons quelques options d’utilisation courantes sur notre ligne de commande.

Ajouter un sous-module Git

Nous utilisons la commande git add submodule pour créer un nouveau sous-module dans notre référentiel hôte. Voici le workflow typique lors de la création de sous-modules Git.

$ git submodule add <Repo URL>

La commande git submodule add nécessite un paramètre d’URL qui pointe vers un référentiel. Git clonera le sous-module et nous pourrons exécuter la commande git status pour voir le nouvel état du dépôt.

Prenons un exemple. Ajoutons un sous-module à notre référentiel Delftscopetech.

commande d&rsquo;ajout de sous-module git

Nous pouvons maintenant exécuter la commande git status comme indiqué ci-dessous.

$ git status

commande d&rsquo;état git

Comme vu ci-dessus, nous avons maintenant deux nouveaux fichiers, .gitmodules et Learn-Submodules. Nous pouvons ajouter les fichiers et valider les modifications.

git submodule init

Nous exécutons la commande git submodule init pour copier le mappage de notre sous-module du fichier .gitmodules dans notre fichier de configuration local. Il entre en jeu lorsque nous avons plusieurs sous-modules dans notre référentiel.

Lister les sous-modules dans Git

La commande git submodule init s’appuie sur le fichier .gitmodules. Nous pouvons afficher une liste de tous les sous-modules en nous appuyant sur le même fichier.

Tout d’abord, nous devrons analyser le fichier. Nous courrons:

$ git config --file .gitmodules --name-only --get-regexp path

Ensuite, nous pouvons exécuter :

$ git config --file .gitmodules --get-regexp path | awk '{ print $2 }'

La commande ci-dessus affichera le chemin vers les sous-modules présents dans votre référentiel.

Auteur: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Article connexe - Git Submodule