Opróżnij folder podmodułu Git po sklonowaniu repozytorium

130

Mam jedno repozytorium hostowane pod adresem https://github.com/aikiframework/json . Na mojej kopii lokalnej dodałem podmoduł za pomocą polecenia

git submodule add [email protected]:jcubic/json-rpc.git json-rpc

Następnie wykonałem commit i push, a zmiany pojawiają się na GitHub (mogę to kliknąć). Ale kiedy sklonuję repozytorium

git clone https://github.com/aikiframework/json.git

folder modułu podrzędnego json-rpc jest pusty.

Czego tu brakuje? Czy o czymś zapomniałem? Dlaczego ten folder jest pusty?

jcubic
źródło

Odpowiedzi:

200

OK, znalazłem, trzeba było dodać --recursiveprzy klonowaniu repozytorium.

Więc polecenie clone kończy się następująco:

git clone https://github.com/aikiframework/json.git --recursive
jcubic
źródło
229
Tak. Możesz również pobrać podmoduły po fakcie za pomocą git submodule update --init, jeśli już sklonowałeś, ale zapomniałeś --recursive.
Amber
4
Właśnie stanąłem przed problemem polegającym na tym, że w gałęzi develop znajduje się podmoduł, ale jeszcze nie w gałęzi master. Kiedy sklonujesz repozytorium git za pomocą --recursive, nie znajdzie on modułu podrzędnego w gałęzi głównej i musisz go pobrać za pomocą komentarza Ambers „git submodule update --init”, aby uzyskać również moduł podrzędny.
d4Rk
11
Jeśli używasz git submodule update --inittrzeba będzie udać się do każdej transakcji repo i zrobić git checkout masterinaczej dostaniesz błąd You are not currently on a branch.na git pullkiedy próbujesz go zaktualizować do nowszej wersji.
Noitidart
@Noitidart czy jest sposób, który tego nie robi? (już po sklonowaniu projektu)
borgr
1
@Noitidart Dzięki za update --initpodpowiedź. To pomaga, gdy oryginalny klon nie ma --recursivew nim i po prostu chce wyciągnąć brakujące moduły podrzędne.
Jari Turkia