2014-11-25 2 views
1

프로젝트 프로젝트에 서브 프로젝트였던 원격 저장소가 있습니다. 원격 프로젝트를 포크하고 이전 하위 모듈을 제거한 다음 분기 된 복사본을 추가하려고했습니다. 이것은 작동하지 않습니다. 내가 무슨 짓을git submodule add는 저장소를 추가하지 않습니다

했다 :

git submodule deinit path/to/sub 
git rm /path/to/sub 
git push origin mybranch 
다음

git submodule add url_of_forked_project_in_my_repo path/to/sub 

내가 --force 또는 --name 사용해야의 REPO 지역 인에 대한 몇 가지 이상한 메시지가, 그리고 끝 그 중 하나를 시도해 본 결과 내 로컬 포크는 내가 만든 모든 변경 사항으로 업데이트되지 않으며 참조는 이전 하위 모듈의 HEAD에 남아 있습니다.

메시지는 다음과 같습니다

에 대한 자식 디렉토리 '경로는// 하위에'(들)을 원격으로 로컬에서 발견된다 : 원산지 자식 : //github.com/SomeoneElse/project 을 원할 경우 [email protected] : myrepo/project.git 에서 '--force'옵션을 다시 사용하는 대신이 로컬 git 디렉토리를 다시 사용하십시오. 로컬 git 디렉토리가 올바른 repo 이 아니면 "--name"옵션을 사용하여 다른 이름을 선택하는 것이 확실하지 않습니다.

--force 옵션을 사용하면 하위 모듈을 가져올 수 있지만 참조가 업데이트되지 않고 메인 프로젝트의 서브 모듈에서 변경 한 내용이 어디에도 전파되지 않습니다. 지역의 의미는 무엇입니까?

필자는 주 프로젝트의 복사본을 업데이트하면 참조가 변경되는 밀 서브 모듈이 정상적으로 실행 되기만하면됩니다.

도움을 주시면 감사하겠습니다.

+0

다음을 확인하십시오 : http://stackoverflow.com/questions/913701/changing-remote-repository-for-a-git-submodule 아마도 저장소의 루트에있는 .gitmodules 파일을 편집하여 문제를 해결할 수 있습니다 수동으로. – jpe

+0

그게 사실 내가 끝내었던 것입니다. 나는 그 같은 수단에 의지 한 유일한 사람이 아니라는 것을 알고있다. – MrSilverSnorkel

+0

누군가에게 더 나은 해결책이있는 경우를 대비하여 답변을 남기지 마십시오. 위에서 언급했듯이 .gitmodules 파일을 편집하여 적절한 repo를 가리 킵니다. 인출 할 때, 우리 팀의 다른 사람들은 모든 것을 흔들 리도록하기 위해'서브 모듈 동기화 '를해야했습니다. – MrSilverSnorkel

답변

0

당신은 혼자가 아닙니다. this answer에 따라 문제를 해결했습니다. .gitmodule 파일에서 해당 스 니펫을 삭제하는 것뿐만 아니라 .git/modules 아래의 하위 디렉토리도 삭제해야합니다.

폴더의 링크를 사용하여 dotfile과 같은 repo를 버전 관리하는 경우 삭제해야 할 모듈의 관련 디렉토리에 신경 쓰지 않아도됩니다.

관련 문제