Verwijder een submodule uit Git op de juiste manier

Het verwijderen van een Git submodule kan niet met een eenvoudig commando. Het is een aantal stappen die moeten worden doorlopen. In dit artikel leg ik uit hoe je een submodule uit een Git repository verwijdert.

In het voorbeeld gebruiken we een submodule in de directory My-SubModule die we willen verwijderen. De stappen zijn als volgt:


Stap 1: Verwijder de verwijzing naar de submodule

  1. Open het bestand .gitmodules in de hoofdmap van je project.
    • Dit bestand bevat een lijst van alle submodules in je repository.
  2. Zoek en verwijder de sectie die hoort bij My-SubModule. Het zal er ongeveer zo uitzien:
    1[submodule "My-SubModule"]
    2    path = My-SubModule
    3    url = <submodule_url>
    
  3. Sla het .gitmodules-bestand op.

Stap 2: Verwijder de submodule uit de index

  1. Gebruik het volgende commando om de submodule uit de Git-index te verwijderen:
    1git rm --cached My-SubModule
    

Stap 3: Verwijder de bestanden van de submodule

  1. Verwijder de submodulemap uit je werkmap:
    1rm -rf My-SubModule
    

Stap 4: Opruimen van de repository-configuratie

  1. Open het bestand .git/config (de lokale Git-configuratie).
  2. Zoek en verwijder de sectie [submodule "My-SubModule"] als deze aanwezig is.

Stap 5: Verwijder submodule-sporen uit de geschiedenis (optioneel)

Als je alle sporen van de submodule uit de geschiedenis van je repository wilt verwijderen (bijvoorbeeld uit eerdere commits), moet je de Git-geschiedenis herschrijven met een interactieve rebase of het gebruik van filter-repo. Dit is niet altijd nodig, tenzij je een specifieke reden hebt om dit te doen.


Stap 6: Commit en push de wijzigingen

  1. Commit de verwijdering van de submodule:
    1git commit -m "Verwijderde submodule My-SubModule"
    
  2. Push de wijzigingen naar de remote repository:
    1git push origin <branch_name>
    

Vertalingen: