Da Anonimo (non verificato) , 29 Aprile 2026

La lista delle frustrazioni

I submodule sono potenti ma fanno inciampare ripetutamente i nuovi utenti. Questa pagina cataloga i fallimenti piu comuni e le ricette che li risolvono.

Directory submodule vuota

git submodule update --init --recursive

Modifiche in detached HEAD perse

cd third_party/lib
git reflog
git checkout -b rescue HEAD@{1}

URL cambiato a monte

git submodule sync --recursive
git submodule update --init --recursive

Rimuovere un submodule

git submodule deinit -f third_party/lib
git rm -f third_party/lib
rm -rf .git/modules/third_party/lib
git commit -m "Remove lib submodule"

Contenuto modificato ma nessun diff

git submodule update --recursive
git add third_party/lib && git commit -m "Bump lib"

L'ordine di push conta

git config --global push.recurseSubmodules on-demand

Submodule shallow

git submodule update --init --recursive --depth 1

Errori comuni

Trattare i submodule come sottodirectory normali — non lo sono. Mescolare submodule con tracking di branch con flussi di SHA fissati genera confusione.