As Sridhar Git1.6.5 + 'dan, aşağıda yorumlar, git clone --recursive
açıklanan resmi alternatif, artık şudur:
inamiy doğru işaretgit submodule update --init --recursive
tanıtılan komutu, b13fd5c tamamlama ile tekrar git1.6.5 olarak, Johan HERLAND ( jherland
) .
Ve IceFire yorumlara ekliyor :
Bir alt modülün yalnızca bir alt modülünü kontrol etmek istiyorsanız, o zaman
git submodule update --init <submoduleName>
gitmek için yoldur.
(eski orijinal cevap)
Göre manuel sayfa
git submodule update --recursive
iç içe geçmiş alt modülleri güncellemelidir. Ancak init kısmı özyinelemeli olmayabilir.
Git sürümünüze bağlı olarak, yinelenen başlatma ve güncellemeye izin veren Git Alt Modüllerini Özyineli Olarak Güncelleme olan bu makaleyle daha "komut dosyası oluşturma" yaklaşımına geri dönebilirsiniz :
#!/usr/bin/perl
use strict;
use Cwd;
init_and_update();
exit;
sub init_and_update
{
my $start_path = cwd();
my %paths;
my $updated;
do
{
my $data = `find . -name '.gitmodules'`;
chomp($data);
$data =~ s/\/\.gitmodules//g;
foreach my $path (split(/\n/, $data))
{
$paths{$path} = '' if($paths{$path} eq '');
}
$updated = 0;
foreach my $path (sort keys %paths)
{
if($paths{$path} eq '')
{
chdir($path);
`git submodule init 2>&1`;
`git submodule update 2>&1`;
chdir($start_path);
if($ARGV[0] eq '--remove-gitmodules')
{
unlink("$path/.gitmodules");
}
$paths{$path} = 1;
$updated++;
}
}
} while($updated);
}