원격 저장소를 가져 오는 저장소를 만들고 싶습니다.
예를 들어, jQuery를 하위 모듈로 가정 해 보겠습니다.
git://github.com/jquery/jquery.git
jQuery를 하위 모듈로 사용하여 저장소를 작성하고 외부 저장소를 원격 저장소로 추가하는 프로세스는 무엇입니까?
또한 이것이 설정되면, 내 리모컨으로 밀거나 당기면 외부가 그대로 유지됩니까?
원격 저장소를 가져 오는 저장소를 만들고 싶습니다.
예를 들어, jQuery를 하위 모듈로 가정 해 보겠습니다.
git://github.com/jquery/jquery.git
jQuery를 하위 모듈로 사용하여 저장소를 작성하고 외부 저장소를 원격 저장소로 추가하는 프로세스는 무엇입니까?
또한 이것이 설정되면, 내 리모컨으로 밀거나 당기면 외부가 그대로 유지됩니까?
답변:
서브 모듈은 실제로 참조하고 사용하기 쉽습니다. 이미 MyWebApp을 저장소로 설정했다고 가정하면 터미널에서 다음 명령을 실행하십시오.
cd MyWebApp
git submodule add git://github.com/jquery/jquery.git externals/jquery
externals/jquery
* 라는 디렉토리가 생성 되어 github jquery 저장소에 연결됩니다. 이제 하위 모듈을 초기화하고 코드를 복제하면됩니다.
git submodule update --init --recursive
이제 모든 최신 코드를 서브 모듈에 복제해야합니다. jquery repo가 변경되고 최신 코드를 풀다운하려면 submodule update
명령을 다시 발행 하십시오. 참고 : 일반적으로 프로젝트에 여러 외부 저장소가 있으므로 항상 "외부"디렉토리 아래에 저장소를 그룹화합니다.
온라인 Pro Git Book 에는 읽기 쉬운 방식으로 제공되는 하위 모듈 (및 일반적으로 git)에 대한 유용한 정보가 있습니다. 또는 git help submodule
좋은 정보도 제공 할 것입니다. 또는 git wiki 에서 Git Submodule Tutorial 을 보자 .
하위 블로그에 대해 이야기하고 Subversion의 svn : externals 메커니즘과 비교하는이 블로그 항목을 발견했습니다. http://speirs.org/blog/2009/5/11/understanding-git-submodules.html
* 모범 사례로서 항상 서브 모듈을 외부와 같은 자체 디렉토리에 배치해야합니다. 그렇지 않으면 루트 프로젝트 디렉토리가 매우 어수선해질 수 있습니다.
git submodule add
, git submodule update
... 어떻게 얻을 수 있는지 쉽게 모르겠습니다.
당신이 알아야 할 대부분의 답변은 이미 답변되었으므로 다루지 않겠지 만 일반적으로 누락되는 작은 정보를 발견했습니다.
아시다시피 "git pull"은 하위 모듈을 업데이트하지 않으며 "git submodules update"는 해당 하위 모듈의 최신 HEAD도 다운로드하지 않습니다.
모든 하위 모듈을 최신 업스트림 개정으로 업데이트하려면
git submodule foreach git pull
하위 모듈을 자주 변경하고 많은 모듈을 가지고 있다면 "git foreach"가 매우 중요해집니다.
결국 나는 http://github.com/evilchelu/braid를 발견 했다. 서브 모듈과 리모컨이 어떻게 작동하는지 예상 한 것과 일치하는 것처럼 보였다.