2017-12-08 23 views
0

개발자가 5-10 명 사용할 자식 저장소를 설정 중입니다 기본 저장소에 하위 모듈을 몇 개 설치했지만 재귀 적으로 분기를 자동으로 추적하지는 않습니다 복제. 주요 문제는 지점 외부에서 커밋하는 개발자 (즉, 헤드리스)를 피하는 것입니다.Git 서브 모듈이 복제본에서 분리됨

하위 모듈을 추가 한 방법은 다른 StackOverflow 게시 지점 추적을 설정하는 것이 좋습니다. 예 : git submodule tracking latest

은 내가 자식 2.7.4를 사용하고 명령

git submodule add -b ${submodule_branch} ../../${submodule_repo_path}.git ${submodule_path} 
git submodule update --remote 

내가 그것을 명확하게 전 분기임을 보여 서브 모듈 중 하나에 '자식 지점'전화

에 추가 할 수 있습니다.

git branch 
* master 

은 이런 변화를 저지하고 원격 '자식 푸시 원점 --mirror --force'로 밀어

서버에서의 Bitbucket의 v5.3.0

내가 '자식 클론으로 클론 - -recursive '내가 모든 REPO를 얻고 .gitmodules 잘 보이는, 그것이이 분리 된 것처럼 보이는 서브 모듈 내에서 그러나 분기를

[submodule "some_app"] 
path = some_app 
url = ../../some_app.git 
branch = master 

을 언급 :

somepath/some_app ((487b858...)) 
$ git branch 
git branch 
* (HEAD detached at 487b858) 
    master 

각 하위 모듈의 올바른 분기를 확인하여 문제를 해결할 수 있지만 필요하다고 생각하지 않습니다.

는 나 또한 복제 후

git submodule update --remote 

전화를 시도하지만 그것이 서브 모듈로 작업 할 때 당신이 먼저 분기를 체크 아웃해야한다 정상적인 연습이

가 도움이되지 않았다?

+0

서브 모듈은 서브 모듈을 업데이트해야하는 개발자에게 추가 수준의 복잡성을 추가합니다. – crashmstr

답변

1

하위 모듈 업데이트 명령을 어느 폴더에서 시도 했습니까? 테스트를 거치지 않고 적어도 하나의 하위 리포지토리가 포함 된 주 리포지토리에 있어야하며 그 중 하나가 아닌 경우 중 하나라고 생각합니다.

분리 동작은 원하는 동작입니다. 하위 모듈 폴더를 나타내는 파일을 보면 하위 모듈이 추가 된 시간부터 커밋 해시를 볼 수 있습니다. git submodule update --remote를 수행하면 업데이트를 커밋해야 함을 알 수 있습니다. 즉, git은 현재 가장 최신의 커밋 해시를 파일에 씁니다. 이렇게하면 하위 모듈의 특정 커밋으로 이동할 수 있습니다.

익숙해 지려면 약간의 시간이 필요했습니다. git scm book의 submodules 장을 꼭 읽어야합니다. 서브 모듈 사용에 도움이되는 몇 가지 팁과 트릭 (및 명령어/설정)을 제공합니다.

+0

루트 및 서브 모듈 폴더에서 모두 서브 모듈 업데이트를 시도했습니다. 2x 커밋을 수행하기에 충분할 정도로 공정합니다. 기본적으로 당신이 기본적으로 어떤 지점에도없는 것은 짜증나는 일입니다. 지금까지 각 서브 모듈의 분기를 체크 아웃하는 스크립트를 작성하십시오. –