Git 2.23 (3Ç 2019): Alt modülleri klonlamak ve en son revizyonuna güncellemek istiyorsanız :
git clone --recurse-submodules --remote-submodules
Sadece kayıtlı SHA1'lerinde klonlamak istiyorsanız:
git clone --recurse-submodules
Aşağıya bakınız.
Orijinal cevap 2010
Joschi'nin yorumlarda belirttiği gibi , git submoduleşimdi --recursiveseçeneği (Git1.6.5 ve daha fazlası) desteklemektedir.
Eğer --recursivebelirtilirse, bu komut kayıtlı submodules içine recurse ve içinde herhangi bir iç içe submodules güncelleyecektir.
Başlangıç bölümü için Git alt modülleriyle özyinelemeli çalışma konusuna bakın .
Daha fazla bilgi için git submoduleaçıklamaya bakın .
Git 1.6 ve sonraki sürümlerde, süper projeyi aşağıdaki –-recursiveseçenekle klonlayarak otomatik olarak yapabilirsiniz :
git clone --recursive git://github.com/mysociety/whatdotheyknow.git
2016'yı git 2.8 ile güncelleyin: " Git alt modüllerinin indirilmesi nasıl kullanılır / hızlandırılır git clone --recursive? " Konusuna bakın.
Paralel olarak birden çok iş parçacığı kullanarak alt modülü getirmeye başlayabilirsiniz.
Örneğin:
git fetch --recurse-submodules -j2
Daha da iyisi, Git 2.23 (Q3 2019) ile, alt modülü tek bir komutta izleme dallarına kopyalayabilir ve kontrol edebilirsiniz!
Bkz. Taahhüt, 4c69101 (19 Mayıs 2019), Ben Avison ( bavison) .
(Göre Birleştirilmiş - Junio Cı Hamano gitster- içinde 9.476.094 tamamlama 2019 17 Haz)
clone: --remote-submodulesbayrak ekle
Kullanırken , alt modüllerin süper projede kaydedilen SHA-1 yerine uzaktan izleme dallarında kontrol edilmesini istediğiniz herhangi bir kullanım durumu için örtük komuta git clone --recurse-submodulesgeçmenin bir yolu yoktu .--remotegit submodule update
Bu yama bu durumu düzeltir.
Aslında geçer --no-fetchiçin git submodule updatede onlar alt modülü sadece klonlanmış gerekçesiyle olarak, uzaktan yine sadece gelen getirilirken böylece aşağı yavaş şeyler görür.
Bunun anlamı:
--[no-]remote-submodules:
Klonlanan tüm alt modüller, süper projenin kayıtlı SHA-1'i yerine alt modülü güncellemek için alt modülün uzaktan izleme dalının durumunu kullanacaktır. Geçen eşdeğerdir --remoteiçin git submodule update.
git clone --recurse-submodules --remote-submodules(Q3 2019 Git 2.23) olacaktır: bir modülde alt modları klonlayacak ve güncelleyecektir . Bkz aşağıda benim Düzenlenen cevabı .