2009-12-22 3 views
32

장고 앱을 배포하려고합니다. 앱은 Github OS 프로젝트를 기반으로 제작되었습니다. 마스터 브랜치로 로컬에 저장했습니다.어떻게 Git의 특정 분기를 서버로 푸시 할 수 있습니까?

$ git branch 
* master 
    customized - customized with local dev settings 
    webfaction_customized - with production server settings 

이 프로젝트의 사용자 지정 내용은 두 개의 별도 분기에 저장됩니다. 그때에이 베어 저장소를 복제 할 :

내 계획은 그 다음 production_server에 노출 된 저장소에 이러한 변경 사항을 밀어

'webfaction_customized'로 변경 사항을 병합, '사용자 정의'에 로컬로 내 사용자 정의를 수행 할 수 있었다 production_server에서 복제 된 저장소의 설정을 변경하고 fcgi 프로세스를 다시 시작하십시오.

첫 번째 문제는 마스터가 아닌 서버로 브랜치를 푸시하려고 시도했을 때 발견되었습니다. 맨손 저장소에서 복제 할 수 없었습니다.

그래서 master 브랜치를 서버로 푸시하려고했습니다.

git push webfaction_server master 

하지만 이제는 내 지사 중 하나도 업로드되지 않았습니다.

특정 분기를 베어 리포지토리에 푸시하고 해당 분기를 복제 할 수있는 방법이 있습니까?

또는

는 마스터 지점 내 사용자 정의하고 Github에서 프로젝트가 GitHub의 지점에있을 것입니다, 그래서 내 프로젝트를 구조 조정해야합니까?

+1

이 오류 메시지가 있습니까 : 마스터 분기에 작업 할 때

는 따라서, 당신은을 통해 추진하고있다? 비 마스터 브랜치를 푸시했을 때 베어 리포지토리를 복제 할 수 없다고하셨습니다. 오류가 무엇입니까? 그리고 master 브랜치를 푸시 할 때 오류가 있습니까? – jonescb

+0

'webfaction_server'가 실제로 원격으로 설정 되었습니까? '리모트 쇼'는 뭐래? – ebneter

+0

비 마스터 브랜치를 복제하려고하면 오류가 발생합니다. 경고 : 원격 HEAD는 존재하지 않는 참조를 나타내며 체크 아웃 할 수 없습니다. – BryanWheelock

답변

1

webfaction_server은 서버 주소뿐만 아니라 리모컨의 이름으로 가정합니다. 여러 리모컨으로 밀거나 당기는 것에 대해 자세히 알아 보려면 git help remote을 실행하십시오.

0

git-update-server-info으로 서버 정보를 업데이트해야 할 수 있습니다. 이 도구는 서버의 HEAD 정보를 최근 커밋 해쉬로 업데이트하고, 오래된 브랜치를 업데이트하고, 새로운 브랜치를 볼 수있게합니다. 특히, git 저장소에있는 info/refs 파일을 업데이트 할 것입니다. 당신은 서버에서이 작업을 실행해야합니다, 그래서, 아마도 뭔가를 다음이 유용 할 수처럼 :

ssh webserver "cd /path/to/your/repository.git/ && git-update-server-info" 

아마도 포스트 커밋 후크, 해당 업데이트를 트리거 할 수있을 수도 있지만 것을 시도하지 않은 아직.

+0

안녕하세요. update-server-info는 실제로 무엇을합니까? 좀 설명해 주시겠습니까? –

1

메시지 Warning: Remote HEAD refers to nonexistent ref, unable to checkout.은 HEAD 링크가 존재하지 않는다는 것을 알려주며, 따라서 Git은 로컬 작업 디렉토리에 체크 아웃 할 버전을 알지 못합니다.

production_server의 브랜치가 올바르게 생성 될 가능성이 있습니다. git checkout <whatever-branch-you-want>으로 해킹을 시작하십시오.

문제가 해결되지 않으면 여기에 git branch -acat .git/config의 출력을 모두 n repos로 붙여 넣으십시오.

+0

'git br'은 https://github.com/larsbrinkhoff/git-scripts/blob/master/git-br의 특정 명령입니다. – tashuhka

+0

@tashuhka fixed, thanks. 아니, 나에게 그것은 'git branch'의 별칭 일 뿐이다. –

62

당신은 간단 할 것 :

기원은 원격 이름 및 사용자 정의 분기 webfaction_customized입니다
git push origin webfaction_customized 

.

git push origin master 
관련 문제