서브모듈 내부의 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 |