서브모듈 내부의 Git 서브모듈(내포 서브모듈)
깃 서브모듈을 여러 개의 다른 깃 서브모듈로 만들고 슈퍼 깃 레포가 각 서브모듈의 내용을 가져오는 것이 가능합니까?
저는 여러 개의 하위 모듈을 포함하는 Git repo를 생성하는 명백하고 순진한 접근 방식을 사용하여 이 작업을 수행하려고 했습니다.
그런 다음 이 Git repo를 다른 Git repo에 하위 모듈로 추가합니다.
그런 다음 supergit repo의 루트 디렉토리에서 끌어오기를 시도합니다.git submodule init
그리고 나서.git submodule update
그러나 하위 하위 모듈을 가져오지 못합니다.
회고록에서 언급한 것처럼 깃 레포에 --재귀적으로 추가합니다.
git submodule update --init --recursive
작동해야 합니다.
아래의 Sridhar가 언급했듯이 Git1.6.5+는 이제 공식적인 대안이 되었습니다.
- "
git clone --submodule
" - "후향적으로 gitrepo에 추가"
(보통의 그림자를 피함)git clone
명령)
inami는 정확하게 지적했습니다.git submodule update --init --recursive
명령어는 커밋 b13fd5c에서 도입되었으며, 요한 헬랜드()jherland
에 의해 다시 git1.6.5로 도입되었습니다.
그리고 IceFire는 댓글에 다음과 같이 덧붙입니다.
서브모듈의 서브모듈을 하나만 체크아웃하려면,
git submodule update --init <submoduleName>
가는 길입니다.
(이전의 원본 답변)
설명서 페이지에 따라
git submodule update --recursive
에서는 중첩된 하위 모듈을 업데이트해야 합니다.그러나 init 부분은 재귀적이지 않을 수 있습니다.
Git 버전에 따라 Git Submodules를 재귀적으로 업데이트하고 재귀적으로 업데이트할 수 있는 다음 기사를 통해 더 "스크립팅" 접근 방식은 재귀적으로 Git Submodules:
#!/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);
}
언급URL : https://stackoverflow.com/questions/1535524/git-submodule-inside-of-a-submodule-nested-submodules
'programing' 카테고리의 다른 글
mariadb 통신 패킷을 읽는 중 오류 발생 (0) | 2023.08.23 |
---|---|
ReferenceError: Firefox에서 이벤트가 정의되지 않았습니다. (0) | 2023.08.23 |
angular2로 인터페이스를 주입할 수 있습니까? (0) | 2023.08.23 |
jQuery에서 버튼 클릭 이벤트를 처리하는 방법? (0) | 2023.08.23 |
프로비저닝 프로파일 갱신 (0) | 2023.08.23 |