2013-06-19 3 views
4

MapBox-ios-sdk를 포크하고 약간 변경했습니다. 최신 버전의 sdk가 여기에 있으며 변경 사항을 내 포크에 병합했습니다. MapBox-ios-sdk는 또한 MapBox-ios-sdk 내의 하위 모듈 인 SMCalloutView를 통합합니다. 그러나 공식 sdk의 버전은 내 포크에없는 새롭고 업데이트 된 SMCalloutView를 사용합니다.Git submodule 새 버전 업데이트

가 나는

내가 here에서 지침을 내 SDK를 업데이트 업데이트하는 방법을 어떻게해야합니까. 그러나 이것은 SMCalloutView를 갱신하지 않습니다. 또한 MapBox-ios-sdk 수준에서 git submodule update --recursive을 시도했지만 아무런 반응이 없습니다. SMCallOutView가 "no branch"에 있기 때문에 결과가 밝혀졌습니다. 그것은 왜 "가지가 없다"고하는거야? 모든 하위 모듈을 "no branch"상태에서 벗어나게하려면 어떻게해야합니까? 그것이 "no branch"에 있다면, 나는 하위 모듈 (또는 심지어 더 중첩 된)의 서브 모듈 또는 서브 모듈을 업데이트해야하는지 결코 알지 못할 것입니다.

+0

서브 모듈은 일반적으로 특정에있다 오히려 분기의 끝에서보다 커밋에서 자세한 내용을 참조 없음 분기)". 하위 모듈을 업데이트하는 것은 혼란 스러울 수 있습니다. 업데이트를 수행하고 있으며 수퍼 프로젝트에 커밋해야하는지 여부 또는 수퍼 프로젝트 업데이트를 가져 왔는지 여부와 submoule이 동기화 (업데이트)되었는지 확인해야하는지 여부에 따라 다릅니다. –

+0

내 사건이 마지막 사례 인 것 같지만 당신이 말하는 슈퍼 프로젝트가 무엇인지 잘 모르겠습니다. 오픈 소스 github 프로젝트를 내 프로젝트의 서브 모듈로 사용하고 있습니다. 그리고 나는 자신의 프로젝트 (태그)를 사용하는 하위 모듈에 대한 업데이트를 포함하여 최신 프로젝트의 오픈 소스 프로젝트를 가져오고 싶습니다. – huggie

+0

서브 모듈에 대한 대안이 있습니까? 이 일로 나는 너트를 몰고있다. 하지만 내가 사용하는 오픈 소스 프로젝트는 서브 모듈에 의존하지만, CocoaPods (iOS에 있음)로 이동해도 – huggie

답변

16

git 1.8.2+ (2013 년 3 월)을 사용하면 특정 분기의 최신 커밋을 반영하는 하위 모듈을 정의 할 수 있습니다.
"git submodule tracking latest"을 참조하십시오.

이것이 분기의 최신에 서브 모듈을 업데이트하기에 충분 것이다 의미

# --remote will also fetch and ensure that 
# the latest commit from the branch is used 
git submodule update --remote 

--remote 옵션에 대한 자세한 내용은 git repo commit 06b1ab를 참조하십시오. 당신이 지금 원하는

git submodule add -b [branch] [URL] [DirectoryName] 
  • 기존 서브 모듈의 경우 :

    • 새로운 서브 모듈의 경우 (지점을 따라야합니다) : 요약하자면


      가지 따라 가자 :
      도 참조하십시오. git repo commit b92892, git submodule을 가지를 따라 변환하는 것.
      당신이 할 필요가있다 :

      git config -f .gitmodules submodule.<path>.branch <branch> 
      

      는 따라서 "("Git submodules: Specify a branch/tag는 "

  • +1

    좋아요! 지금은 자식 만 업데이트해야합니다. 이 기능은 놀라 울 정도로 늦게 나타났습니다. : D – huggie

    +0

    나 자신에게 보내는 메모 :'git submodule add -b [branch] [URL] [DirectoryName]' – huggie

    +0

    @huggie 나는 당신의 노트를 더 많은 가시성을 위해 대답에 포함시킬뿐만 아니라 기존 서브 모듈. – VonC