Sous-modules Git

Git avancé

Amanda Crawford-Adamo

Software and Data Engineer

Qu'est-ce qu'un sous-module Git ?

Sous-module Git

git submodule
  • Un dépôt imbriqué dans un autre dépôt
  • Gestion de versions et historique séparés
  • Les changements au sous-module n'affectent pas le dépôt principal
  • Le dépôt principal peut référencer une version précise d'un sous-module

Représentation d'un dépôt contenant plusieurs dépôts en son sein.

Git avancé

Ajouter un sous-module

Ajouter un sous-module à l'aide du lien ou du répertoire sous le dossier de chemin.

git submodule add <repository link|dir> <path>

$$

Exemple

Ajoute la bibliothèque de validation des données au projet ETL sous le dossier libs/validator du dépôt ETL.

git submodule add https://github.com/example/data-validator.git libs/validator
Git avancé

Lister les sous-modules

Lister tous les sous-modules d'un projet

git submodule status

Exemple

$ git submodule status
e1f2...7w8x9 data_cleaning_lib
a1b2...q7r8 api_connector
d9e8...t3u2 visualization_toolkit
Git avancé

Mettre à jour des sous-modules

Mettre à jour un sous-module avec les derniers changements

Plusieurs options :

  1. Met à jour tous les sous-modules dont le code source est sur votre ordinateur local.
    git submodule update --init 
    
  2. Met à jour tous les sous-modules dont le code source est sur un dépôt distant.
    git submodule update --init --remote 
    
  3. Met à jour un sous-module précis
    git submodule update --init <path_to_submodule>
    
Git avancé

Supprimer des sous-modules

Processus pour supprimer un sous-module

  1. Désinitialiser le sous-module.
    git submodule deinit <submodule_name>
    
  2. Retirer le sous-module de l'index du dépôt Git.
    git rm <path>
    
Git avancé

Extraire un sous-module d'un grand dépôt

  1. Copier tous les fichiers à inclure dans le nouveau dépôt de sous-module dans un autre dossier à l'extérieur du dépôt.

  2. Dans le nouveau dossier, créer un nouveau dépôt pour le sous-module :

    git init <new-submodule>
    
  3. Utiliser git filter-repo pour extraire les fichiers et l'historique pertinents du projet principal :

    git filter-repo --path <extract_path> --invert-paths
    
  4. Ajouter le dépôt extrait comme sous-module au projet principal :

    git submodule add <new-submodule_path> <path_to_store_submodule>
    
Git avancé

Quand utiliser des sous-modules et bonnes pratiques

Cas d'utilisation :

  1. Gérer des bibliothèques externes
  2. Partager du code entre projets
  3. Maintenir des versions précises de dépendances

Bons procédés :

  1. Garder les sous-modules à jour
  2. Utiliser des chemins relatifs
  3. Communiquer les changements à l'équipe
Git avancé

Passons à la pratique !

Git avancé

Preparing Video For Download...