2012-01-17 3 views
18

그 자체로 힘내 소스 컨트롤이있는 Xcode 프로젝트가 있습니다. 라이브러리 폴더에서 나는 GitHub에서 8 개의 다른 Git 프로젝트를 복제했습니다. 그들은 내 자신의 힘내 저장소에 위치하고 커밋에 내 자식에 이러한 모든 라이브러리를 추가했습니다.힘내 : 프로젝트에서 자식 라이브러리를 다루는 방법

내 저장소에있는 모든 자식 라이브러리의 코드를 보유하는 대신 내 저장소의 복제본을 만들 때 자식 코드를 저장소에서 다운로드하도록 할 수있는 방법이 있습니까? 아니면 다른 git repos를 프로젝트에 포함시키는 것이 정상입니까?

+0

http://stackoverflow.com/questions/2140985/setup-a-git-external-for-remote- repo – tobiasbayer

답변

24

물론 다음을 수행하십시오

  1. 를 터미널을 열고 이미
  2. 을 추가 한 수있는 제 3 자 폴더를 제거하고 실행 다음 명령들

    cd /path/to/your/main/repo 
    git submodule add [email protected]:someuser/somerepo.git somerepo 
    git commit -m "Added submodules" 
    
  3. 지금 대신 해당 파일을 복사하는 당신은 당신의 프로젝트의 다른 저장소에 대한 참조를해야합니다 :

    http://i.minus.com/jcphKnFxLexk8.png

편집 : 이제 당신의 서브 모듈을 업데이트 할 경우

더 최근 당신이 다음을 수행 할 수 있습니다 커밋 :

cd somerepo 
git pull # You can also checkout a branch/tag etc. 
cd .. 
git add somerepo 
git commit -m "Telling the main repo to update the reference to the referenced repo" 
+0

감사합니다. 대신'git submodule add https://github.com/AlanQuatermain/AQGridView.git Libraries/AQGridView' 대신'[email protected] : ... '을 사용할 수 있습니까? – dhrm

+0

어떻게 이러한 서브 모듈을 업데이트 할 수 있습니까? 내 레포를 당길 때 자동으로 당겨 지거나 폴더 안에 들어가서'git pull '을해야합니까? – dhrm

+0

@DennisMadsen 네, 당신은'somerepo'에서 어떤 변경 사항을 가져 오는 git pull을 할 수 있습니다 만, 참고 자료를 업데이트하기 위해서도 메인 저장소에 알려야합니다. 내 업데이트 된 게시물을 참조하십시오. BTW : 서브 모듈은 저장소에서 코드를 복제 할 필요가 없으므로 매우 편리합니다. 이미 저장소를 통해 액세스 할 수 있습니다. – Besi

관련 문제