2012-04-02 3 views
1

git 브랜치에서 작업하는 동안 문제가 발생했습니다. 마스터 브랜치에는 v2.0 태그가 포함 된 서브 모듈이 있습니다. 새로운 분기 말 수정으로 분기하고 해당 유물을 약간 변경하고 서브 모듈을 "git checkout v3.0"을 통해 v3.0으로 업데이트했습니다. 이건 내가 한 짓이야. 이제 "git checkout master"를 사용하여 master로 다시 전환했습니다. 서브 모듈 구성이 변경되었음을 나타내는 "M submodule"메시지를 표시하고 새로운 변경 사항을 표시합니다. 서브 모듈은 master 브랜치에서도 v3.0으로 바뀌었다.분기의 서브 모듈 구성

왜 이런 일이 발생합니까? 서브 모듈 버전을 자동으로 변경하지 않고 지점간에 전환 할 수없는 이유는 무엇입니까?

+0

새 모듈 버전을 적용 하시겠습니까? – knittl

+0

서브 모듈은 업데이트되고 커밋되지만 외부 적으로 커밋됩니다. 수퍼 프로젝트 내에서 변경되지 않습니다. 방금 새 지점에서 하위 모듈의 새 태그를 체크 아웃하고 커밋 한 다음 마스터로 다시 전환했습니다. – maxmelbin

+0

분기하기 전에'git status'가 출력되는 것은 무엇입니까? 하위 모듈에 대한 수정 사항을 표시합니까? (또한'git status -s'를 시도하십시오) – knittl

답변

3

수정 분기에는 서브 모듈 v3.0이 있습니다. 마스터 브랜치에는 서브 모듈 v2.0이 있습니다. 마스터 브랜치로 다시 전환하면 서브 모듈은 v3.0으로 유지되므로 'git status'는 서브 모듈 변경을 표시합니다. 브랜치를 전환 할 때 '자식 하위 모듈 업데이트'를 수행해야합니다. 그러면 하위 모듈이 v2.0 (마스터 버전)으로 되돌아갑니다.