2010-02-19 6 views
7

많은 서브 모듈이있는 프로젝트에서 작업하고 있습니다. 어제, 모든 것이 복숭아 였고, 앱이 돌아가고있었습니다. 오늘 아침에 git submodules update을 실행 한 후 오류가 발생했습니다.체크 아웃 과거 자식 서브 모듈 커밋

$ git submodule update 
Submodule path 'vendor/plugins/pluginA': checked out '49d5cba84dcffc061db69813162d103feef31ecb' 
Submodule path 'vendor/plugins/pluginB': checked out '4f442f0448c1826252933d5af8fb33cd64d76f6e' 

그럼 문제가 해결되기를 기다리는 동안 하위 모듈의 이전 버전을 확인하려면 어떻게해야합니까? 이 사례를 구체적으로 언급 한 예제를 실제로 보지 않고 솔루션에 대한 여러 참조를 보았습니다.

감사합니다.

편집 : 당신은 또한 (다시 머리를 참조 할 pluginApluginB을 얻을 수있는 방법/마스터)이 문제를 해결/나를 이해하는 데 도움이 경우 보너스 :

$ git submodule status 
49d5cba84dcffc061db69813162d103feef31ecb vendor/plugins/pluginA (49d5cba) 
4f442f0448c1826252933d5af8fb33cd64d76f6e vendor/plugins/pluginB (4f442f0) 
558fd1a762d63562689e58cac50283192fde74d5 vendor/plugins/pluginC (heads/master) 
4feb2c51148ebc4d4f80f9a64b9eabbfde5b13a3 vendor/plugins/pluginD (heads/master) 
19dce61e256b0fc3f05342cdd3e4d21a434c0b87 vendor/plugins/pluginE (heads/master) 
+0

하위 모듈의 폴더에서 수동으로 마스터를 체크 아웃하여 "보너스"문제를 파악했습니다. submodule 폴더에서'git checkout master'를 실행 한 다음 superproject 디렉토리에서'git commit'을 실행하십시오. – Rob

+0

참조 http://stackoverflow.com/questions/1979167/git-submodule-update/1979194#1979194 – VonC

답변

2
$ git submodule update 
Submodule path 'vendor/plugins/pluginA': checked out '49d5cba84dcffc061db69813162d103feef31ecb' 
Submodule path 'vendor/plugins/pluginB': checked out '4f442f0448c1826252933d5af8fb33cd64d76f6e' 

당신이 가져 와서 프로젝트에 파일 및 서브 모듈을 병합, 자식 풀했을 의미로 좋아하는 어느 버전을 체크 아웃합니다.
업스트림 프로젝트 (해당 프로젝트를 끌어 온 서브 모듈)의 SHA1이 변경되었습니다.

당신은 그 서브 모듈이 원하는 경우 상류 다시 심판 (projectAgit checkout aref, 다음 cd ..git add -A; git commit -m "advance submodule to aref"), 푸시 (또는하지 않음)을 다시 변경할 수 있습니다.

당신은 정확한 SHA1이 서브 모듈를 업데이트하기 전에, 단순히 당신의 주요 프로젝트를 업데이트하기 전에 이전 SHA1 되 git show previousProjectSHA1 (previousProjectSHA1을에서 당신의 서브 모듈 무엇인지 알고 싶다면

당신은 볼 것 같은 뭔가 :

(4c4c5a2)를 사용하면 이전 상태로 복원하는 데 필요한 서브 모듈 SHA1이라고
new file mode 160000 
index 0000000..4c4c5a2 

.

보기그럼 서브 모듈의 특성에 대해 더 알고 싶습니다.

0

같은 첫 번째 경우에, 당신은 이동 디렉토리를 서브 모듈 및 git checkout <ref>

관련 문제