git submodule în Git

Integrează și sincronizează alte depozite Git ca subproiecte în interiorul depozitului curent.

Sintaxă comandă
git submodule [subcomandă] [opțiuni]

Ce face git submodule

Modulele secundare (submodules) permit includerea unui alt proiect Git (de exemplu o bibliotecă partajată, o temă comună sau un modul de bază) într-un subdirector al proiectului tău, menținând în același timp istoricul său complet separat.

Depozitul părinte înregistrează doar un indicator către un anumit commit din submodul, asigurând că toți dezvoltatorii lucrează cu aceeași versiune a dependenței.

Opțiuni și argumente

Opțiune / Parametru Descriere
add URL [CALE] Adaugă un nou depozit ca submodul în directorul specificat.
init Inițializează configurația submodulelor locale din fișierul .gitmodules.
update Descarcă și actualizează conținutul submodulelor la commit-ul înregistrat în proiectul părinte.
--recursive Clonează sau actualizează recursiv și submodulele care conțin alte submodule.

Exemple

Exemplul 1: Clonarea unui proiect care folosește submodule

La clonare se adaugă parametrul –recurse-submodules pentru a descărca și dependențele.

git clone --recurse-submodules https://github.com/exemplu/proiect.git

Ieșire în terminal

Cloning into 'proiect'...
Submodule 'libs/api' (https://github.com/exemplu/api.git) registered for path 'libs/api'
Cloning into 'libs/api'...
Submodule path 'libs/api': checked out '4a2b1c3d'

Greșeli frecvente

  • Clonarea unui proiect cu submodule fără --recurse-submodules: folderele submodulelor vor rămâne complet goale pe disc! Dacă ai clonat deja simplu, rulează git submodule update --init --recursive.

Comenzi înrudite

  • git clone: Descarcă și creează o copie locală completă a unui depozit aflat la distanță (ex. GitHub).