0Pricing
Git Advanced: Monorepo, Submodules & Workflows · Leçon

Supprimer et désinitialiser des sous-modules

Découvrez la procédure correcte et complète pour supprimer un sous-module Git d’un dépôt, notamment sa désinitialisation, le nettoyage de .gitmodules et l’évitement des états résiduels.

Supprimer et désinitialiser des sous-modules est une leçon Git Advanced: Monorepo, Submodules & Workflows gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Git Advanced: Monorepo, Submodules & Workflows, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Git Advanced: Monorepo, Submodules & Workflows comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

When You Need to Remove a Submodule

Submodules are added to pull in external code, but requirements change. You may need to remove one when the dependency is replaced, vendored directly, or simply no longer needed.

Removal is more involved than deleting a folder: a submodule lives in several places at once, and missing one leaves your repo in a broken state.

Where a Submodule Lives

A submodule has three footprints:

  • .gitmodules — the declarative config
  • .git/config — your local active config
  • .git/modules/<path> — the cached submodule git data

Plus the working tree folder itself. Clean removal touches all of these.

Step 1: Deinitialize

Start with git submodule deinit. This unregisters the submodule and removes its entry from .git/config, leaving the rest intact for now.

git submodule deinit -f path/to/submodule

Step 2: Remove from the Index

Use git rm to remove the submodule from tracking and from the working tree. This also updates .gitmodules automatically in modern Git.

git rm -f path/to/submodule

Step 3: Clean the Cached Git Data

The submodule's git data lingers under .git/modules. Remove it so a future submodule with the same path does not collide.

rm -rf .git/modules/path/to/submodule

Verify .gitmodules Is Clean

Open .gitmodules and confirm the [submodule "..."] block is gone. If git rm left an empty file or a stale entry, fix it by hand and stage the change.

git diff --cached .gitmodules

Step 4: Commit the Removal

The removal must be committed so collaborators get the change. The commit captures the deleted folder, the updated .gitmodules, and the dropped index entry.

git commit -m 'Remove path/to/submodule'

The Manual Fallback

On older Git versions git rm may not edit .gitmodules for you. The manual path:

git config -f .gitmodules --remove-section submodule.path/to/submodule
git add .gitmodules
git rm --cached path/to/submodule
rm -rf path/to/submodule

What Collaborators See

When teammates pull the removal commit, the folder disappears from tracking. But their local .git/modules cache and .git/config entry may persist. Tell them to run git submodule sync and clean up if needed.

Common Mistakes

  • Deleting only the folder with rm -rf — leaves a broken index entry
  • Forgetting .git/modules cleanup — blocks re-adding the same path
  • Not committing the .gitmodules change — others still see the submodule

A Reusable Checklist

Whenever you remove a submodule, run through: deinit, rm, clean modules cache, verify .gitmodules, commit. Following the same order every time prevents the half-removed states that confuse a whole team.

Quick Check

Test your understanding of removing submodules.

Recap

You learned the complete removal procedure: deinit to unregister, git rm to drop tracking, clean .git/modules to clear the cache, verify .gitmodules, then commit. Following this checklist every time keeps both your repo and your collaborators' clones healthy.

Questions Fréquemment Posées

La leçon « Supprimer et désinitialiser des sous-modules » est-elle gratuite ?

Oui — le texte complet de « Supprimer et désinitialiser des sous-modules » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Git Advanced: Monorepo, Submodules & Workflows, passe à CoddyKit PRO. Le cours Git Advanced: Monorepo, Submodules & Workflows comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Supprimer et désinitialiser des sous-modules » ?

Découvrez la procédure correcte et complète pour supprimer un sous-module Git d’un dépôt, notamment sa désinitialisation, le nettoyage de .gitmodules et l’évitement des états résiduels. Tu pratiques Git Advanced: Monorepo, Submodules & Workflows avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Git Advanced: Monorepo, Submodules & Workflows ?

Aucune expérience préalable n'est requise. Git Advanced: Monorepo, Submodules & Workflows sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Supprimer et désinitialiser des sous-modules » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Git Advanced: Monorepo, Submodules & Workflows ?

Oui. Chaque leçon Git Advanced: Monorepo, Submodules & Workflows inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Introduction aux sous-modules Git
  2. Ajout et clonage de sous-modules
  3. Mise à jour et synchronisation des sous-modules
  4. Supprimer et désinitialiser des sous-modules
← Retour à Git Advanced: Monorepo, Submodules & Workflows