Folder submisi Git kosong ketika repo dikloning

130

Saya punya satu repo yang dihosting di https://github.com/aikiframework/json . Pada salinan lokal saya, saya menambahkan submodule menggunakan perintah

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

Lalu saya melakukan komit dan tekan, dan perubahan muncul di GitHub (saya bisa mengkliknya). Tetapi ketika saya mengkloning repo

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

folder submodule json-rpc kosong.

Apa yang kulewatkan di sini? Apakah saya lupa tentang sesuatu? Mengapa folder itu kosong?

jcubic
sumber

Jawaban:

200

OK saya menemukannya, perlu ditambahkan --recursive ketika kloning repo.

Jadi perintah klon berakhir sebagai:

git clone https://github.com/aikiframework/json.git --recursive
jcubic
sumber
229
Ya. Anda juga dapat mengambil submodules setelah fakta dengan git submodule update --init, jika Anda sudah dikloning tetapi lupa --recursive.
Amber
4
Hanya menghadapi masalah bahwa ada submodule pada mengembangkan cabang, tetapi belum pada cabang master. Ketika Anda mengkloning git repo menggunakan --recursive itu tidak akan menemukan submodule di cabang master, dan Anda harus mengambilnya menggunakan komentar Ambers "git submodule update --init" untuk mendapatkan juga subomdule.
d4Rk
11
Jika Anda menggunakan git submodule update --initAnda akan harus pergi ke setiap repo dan melakukan git checkout mastersebaliknya Anda akan mendapatkan kesalahan You are not currently on a branch.pada git pullsaat Anda mencoba untuk meng-update ke versi yang lebih baru.
Noitidart
@ Noitart apakah ada cara yang tidak melakukan itu? (setelah mengkloning proyek)
borgr
1
@Noitidart Terima kasih atas update --initpetunjuknya. Itu membantu ketika klon asli tidak ada --recursivedi dalamnya dan hanya ingin menarik submodula yang hilang.
Jari Turkia