2010-12-15 5 views
21

나는 하나의 서브 모듈을 가진 간단한 프로젝트를 가지고있다.자식 서브 모듈에서 커밋을 푸시 할 수 없습니까?

$ git submodule 
964737623a362f6303e87ec41f2c7090c8c2c093 lib/mongodb-php-odm (heads/master-1-g9647376) 

나는 그 서브 모듈을 변경하고 커밋했지만 github으로 푸시 할 수는 없습니다.

$ cd lib/mongodb-php-odm 
$ git branch 
* (no branch) 
    master 
$ git remote -v 
origin [email protected]:colinmollenhour/mongodb-php-odm.git 
$ git ls-remote . 
964737623a362f6303e87ec41f2c7090c8c2c093 HEAD 
6f5f91eff9b1854faa30608f335aee92aa7532eb refs/heads/master 
6f5f91eff9b1854faa30608f335aee92aa7532eb refs/remotes/origin/HEAD 
6f5f91eff9b1854faa30608f335aee92aa7532eb refs/remotes/origin/master 
$ git push origin master 
Everything up-to-date 

은 "모든이 최신"는 964737 커밋하기 때문에 github에 푸시되지 않은 말한다 이유를 이해하지 않습니다. 그것은 내가 잘못한 것 같지만 어떤 것이 될지 전혀 모르겠다. ..

이 서브 모듈의 최신 커밋을 github으로 푸시 (push)하려면 어떻게해야합니까?

답변

14

커밋되지 않은 것 같습니다. 커밋이 어떤 분기에도 속하지 않은 것 같습니다. 서있는 지점을 만들고 마스터와 비교하기 위해 gitk을 실행 한 다음 필요에 따라 cherry-pick 또는 rebase를 실행하십시오.

+8

고마워요, 그게 올바른 방향으로 가고 있어요. 여기 제가 정확히 한 걸음 한 단계가 있습니다. 그것은 매력처럼 작동했습니다. 꽤 단순 해 보입니다 ... git checkout -b temp; 자식 체크 아웃 마스터; 자식 병합 임시 직원; git branch -d temp; git push origin master; – ColinM

+1

이것은 일반적으로 서브 모듈이 들어갈 상태입니다. git submodule 명령은 주어진 커밋을 체크 아웃 할 때 분리 된 HEAD 모드에서 수행합니다 (분기가 체크 아웃되지 않고 특정 커밋). – Cascabel

+2

[지점을 만들지 않을 경우 수행 할 작업] (http://edspencer.net/2009/10/git-what-to-do-if-you-commit-to-no-branch.html)은 좋은 것입니다. 이 상황을 해결하기위한 기사 –

5

@ColinM, 나는 그것이 나에게 동일한 문제를 해결 도움이 완벽한 솔루션이기 때문에 당신이 답변에 코멘트를 이동해야한다고 생각! 고마워 - 후안 카를로스 모레노

나는 그것을 여기에서 할 것이다.

Scheffer가 말했듯이, 당신은 "HEAD-less"커밋을하고 있습니다. ColinM 말했듯이,이 같은 마스터 다시 커밋 병합 할 수 있습니다 :

cd lib/mongodb-php-odm 
git checkout master 
git merge [email protected]{1} 
git push origin master 

편집 : [email protected]{1} 대신 임시 지점 또는 태그가 필요하지 정리가 없기 때문에 간단 사용. 표현 [email protected]{1}은 HEAD의 이전 값을 의미하며,이 경우 headless 분기의 새 확약이됩니다.

+0

당신이하고있는 일에 대한 설명과 문제 해결 방법을 함께 적어주십시오. – Barmar

+1

@Barmar, git-submodules는 분기가 아닌 특정 커밋을 체크 아웃 할 것이므로 "분리 된 헤드"가있는 sub-repos를 남겨 둡니다. 콜린 (ColinM)이 제안한이 단계들은 현재 커밋을 푸시하기 전에'master' 브랜치에 병합합니다. – cdunn2001

관련 문제