Git 2.23 (Q3 2019): jika Anda ingin mengkloning dan memperbarui submodules ke revisi terbaru mereka:
git clone --recurse-submodules --remote-submodules
Jika Anda hanya ingin mengkloning mereka di SHA1 yang direkam:
git clone --recurse-submodules
Lihat di bawah.
Jawaban asli 2010
Seperti joschi menyebutkan dalam komentar, git submodule
sekarang mendukung --recursive
opsi (Git1.6.5 dan lebih banyak).
Jika --recursive
ditentukan, perintah ini akan muncul kembali ke submodula terdaftar, dan memperbarui submodula bersarang di dalamnya.
Lihat Bekerja dengan git submodul secara rekursif untuk bagian init.
Lihat git submodule
dijelaskan lebih lanjut.
Dengan versi 1.6.5 dari git dan yang lebih baru, Anda dapat melakukan ini secara otomatis dengan mengkloning super-proyek dengan –-recursive
opsi:
git clone --recursive git://github.com/mysociety/whatdotheyknow.git
Perbarui 2016, dengan git 2.8: lihat " Bagaimana cara mempercepat / memparalelkan unduhan dari submodules git menggunakan git clone --recursive
? "
Anda dapat memulai mengambil submodule menggunakan beberapa utas, secara paralel.
Untuk instansi:
git fetch --recurse-submodules -j2
Bahkan lebih baik, dengan Git 2.23 (Q3 2019), Anda dapat mengkloning dan checkout submodule ke cabang pelacakan mereka dalam satu perintah!
Lihat komit 4c69101 (19 Mei 2019) oleh Ben Avison ( bavison
) .
(Digabung oleh Junio C Hamano - gitster
- dalam komit 9476094 , 17 Jun 2019)
clone
: tambahkan --remote-submodules
bendera
Saat menggunakan git clone --recurse-submodules
sebelumnya tidak ada cara untuk --remote
beralih ke git submodule update
perintah implisit untuk setiap kasus penggunaan di mana Anda ingin submodula diperiksa di cabang pelacakan jarak jauh daripada dengan SHA-1 yang direkam dalam proyek super.
Patch ini memperbaiki situasi ini.
Ini sebenarnya melewati --no-fetch
ke git submodule update
serta dengan alasan mereka submodule yang baru saja dikloning, sehingga mengambil dari remote lagi hanya berfungsi untuk memperlambat segalanya.
Itu berarti:
--[no-]remote-submodules:
Semua submodule yang dikloning akan menggunakan status cabang pelacak jarak jauh submodule untuk memperbarui submodule, daripada SHA-1 superproyek yang direkam. Setara dengan meneruskan --remote
ke git submodule update
.
git clone --recurse-submodules --remote-submodules
(Q3 2019 Git 2.23): itu akan mengkloning dan memperbarui submodul dalam satu perintah. Lihat jawaban saya yang diedit di bawah .