하위 모듈을 리포지토리에 넣으려고합니다. 문제는 부모 저장소를 복제 할 때 하위 모듈 폴더가 완전히 비어 있다는 것입니다.
git clone parent_repo
실제로 하위 모듈 폴더에 데이터를 넣을 수있는 방법이 있습니까?
예를 들어, http://github.com/cwolves/sequelize/tree/master/lib/는 , nodejs-mysql-native
외부 자식 서브 모듈 가리키고,하지만 난 체크 아웃 할 때 sequelize
프로젝트를 해당 폴더가 비어 있습니다.
답변
Git 버전 2.13 이상 --recurse-submodules
에서는 --recursive
다음 대신 사용할 수 있습니다 .
git clone --recurse-submodules -j8 git://github.com/foo/bar.git
cd bar
편집자 주 : -j8
버전 2.8에서 사용할 수있는 선택적 성능 최적화 옵션이며 한 번에 최대 8 개의 하위 모듈을 병렬로 가져옵니다 man git-clone
.
버전 2.12까지 Git 버전 1.9 -j
사용 (버전 2.8 이상에서만 사용 가능한 플래그) :
git clone --recursive -j8 git://github.com/foo/bar.git
cd bar
Git 버전 1.6.5 이상에서는 다음을 사용할 수 있습니다.
git clone --recursive git://github.com/foo/bar.git
cd bar
이미 복제 된 repos 또는 이전 Git 버전의 경우 다음을 사용하십시오.
git clone git://github.com/foo/bar.git
cd bar
git submodule update --init --recursive
답변
서브 모듈이 채워지기 전에 두 가지를해야합니다 :
git submodule init
git submodule update
답변
Git 2.23 (2019 년 3 분기) : 서브 모듈을 복제 하고 최신 버전으로 업데이트 하려는 경우 :
git clone --recurse-submodules --remote-submodules
기록 된 SHA1에서 복제하려는 경우 :
git clone --recurse-submodules
아래를 참조하십시오.
원문 답변 2010
코멘트에서 joschi가 언급 했듯이 git submodule
이제 --recursive
옵션 (Git1.6.5 이상)을 지원합니다 .
경우
--recursive
지정,이 명령은 등록 된 서브 모듈로 재귀 적 및 내에서 중첩 된 서브 모듈을 업데이트합니다.
초기화 부분에 대해서는 git 서브 모듈을 재귀 적으로 작업하기를 참조하십시오 .
자세한 내용은 git submodule
설명 을 참조하십시오 .
git 버전 1.6.5 이상에서는 다음
–-recursive
옵션을 사용하여 수퍼 프로젝트를 복제하여 자동으로 수행 할 수 있습니다 .
git clone --recursive git://github.com/mysociety/whatdotheyknow.git
자식 2.8 2016 업데이트 : 참조 ” 자식 서브 모듈이 사용 / PARALLELIZE 다운로드 속도를 어떻게 git clone --recursive
? “
여러 스레드를 병렬로 사용하여 서브 모듈 가져 오기를 시작할 수 있습니다.
예를 들어:
git fetch --recurse-submodules -j2
Git 2.23 (Q3 2019)을 사용하면 하나의 명령으로 서브 모듈을 추적 분기에 복제하고 체크 아웃 할 수 있습니다!
Ben Avison ( )의 commit 4c69101 (2019 년 5 월 19 일)을 참조하십시오 . ( Junio C Hamano 에 의해 병합 – 커밋 9476094 , 2019 년 6 월 17 일)bavison
gitster
clone
:--remote-submodules
플래그 추가사용하는 경우
git clone --recurse-submodules
패스 할 수있는 방법 이전에 없었다--remote
암시로 전환git submodule update
하면 서브 모듈 오히려 SHA-1 superproject에 기록보다 자신의 원격 추적 분기에 체크 아웃하고자하는 모든 사용 사례에 대한 명령.이 패치는이 상황을 수정합니다.
실제로 통과--no-fetch
에git submodule update
잘 그들이 서브 모듈은 단지 복제 된 근거로, 원격 다시 단지에서 가져 오는 있도록 아래로 천천히 일을 제공합니다.
그 의미는:
--[no-]remote-submodules:
복제 된 모든 하위 모듈은 수퍼 프로젝트의 기록 된 SHA-1이 아니라 하위 모듈의 원격 추적 분기 상태를 사용하여 하위 모듈을 업데이트합니다. 로 전달하는
--remote
것과 같습니다git submodule update
.
답변
[빠른 답변]
이 명령을 사용하여 모든 하위 모듈과 함께 repo를 복제 할 수 있습니다.
git clone --recursive YOUR-GIT-REPO-URL
또는 이미 프로젝트를 복제 한 경우 다음을 사용할 수 있습니다.
git submodule init
git submodule update
답변
하위 모듈이 분기에 추가 된 경우 복제 명령에 하위 모듈을 포함시켜야합니다.
git clone -b <branch_name> --recursive <remote> <directory>
답변
이 시도:
git clone --recurse-submodules
이미 서브 모듈을 상위 프로젝트에 추가했다고 가정하면 서브 모듈 데이터를 자동으로 가져옵니다.
답변
나는 당신이 3 단계로 갈 수 있다고 생각합니다 :
git clone
git submodule init
git submodule update
