2009-10-29 2 views
2

나는 master와 beta branch를 가지고있다. 푸시가 거부되는 상황이 있습니다.git push에서 "rejected"를 처리하는 방법은 무엇입니까?

edit2 : 브랜치 마스터입니다.

$ git push 
Counting objects: 9, done. 
Compressing objects: 100% (6/6), done. 
Writing objects: 100% (6/6), 669.81 KiB, done. 
Total 6 (delta 2), reused 0 (delta 0) 
To [email protected]:foobar/codedemo.git 
    a5fc71d..64430c1 master -> master 
! [rejected]  beta -> beta (non-fast forward) 
error: failed to push some refs to '[email protected]:foobar/codedemo.git' 

일반적으로 나는 베타 체크 아웃을하고 베타를 풀어서이 문제를 해결할 것입니다.

하지만 프로덕션 웹 사이트이므로 베타 체크 아웃을 할 수 없습니다. 체크 아웃하지 않고 베타 테스트를 수행 할 수있는 방법이 있습니까?

이것은 제작 사이트이므로 어떻게 든 붙어 있습니다.

편집 : 코드도 다른 위치에서 체크 아웃되었으므로 여기에서 문제를 해결하기 위해 다른 위치에서 뭔가를 할 수 있습니까? 다른 위치에는 문제가 없습니다.

EDIT3 : 내가 잠시 후 그것을 할 수 허용 솔루션의 도움으로,하지만 난 당신이 밀어하려고하는 어떤 지점 두 번째 클라이언트

+0

푸시하려는 지점을 지정하십시오. [마스터 또는 베타] – gahooa

+0

@ gahooa : 지점 마스터입니다. –

+0

체크 아웃하지 않고 당겨서 할 수 있습니다. '자식 페치'라고합니다. 하지만이 방법은 병합 충돌을 해결하기 위해 지점을 체크 아웃 할 수 있어야하므로 도움이되지 않습니다. –

답변

4

.

당신은 아무것도 이상한하지 않은 경우
git push origin beta:beta-temp 
# on a different machine 
git fetch 
git checkout beta-temp 
git rebase origin/beta # puts your new commits on top of the upstream 
git push origin beta-temp:beta 
git push origin :beta-temp # to delete it 
+0

감사합니다. 이것이 나에게 도움이되었습니다. 즉,이 경우 베타 체크 아웃없이 출처/베타에서 로컬 베타로 병합 할 수있는 간단한 방법이 없습니다. –

+0

항상 병합에 실패 할 가능성이 있으므로 올바른 작업이므로 실패를 수정하고 하이브리드를 커밋 할 수 있도록 작업 트리에서 병합을 수행해야합니다. –

0

없이 솔루션을 선호하는 것?

기본적으로 git push은 구성된 모든 추적 분기를 푸시합니다.

은이 단지 현재 분기를 밀어보십시오 : 당신이 를 해결하기 위해 그것을 밖으로 검사 할 수있는 그런 다음 어딘가에 가고, 다른 지점으로 베타를 밀어 수

git push origin HEAD

4

는,이 이유는 원격가 당신이 인식하지 못하는 것을 저지 있으며, 푸시가 완전히 커밋 무시합니다 계속할 수 있다는 것입니다.

먼저 두 개의 커밋을 병합하려고 시도한 pulling을 시도한 후에 푸시 할 수 있습니다.

현재 체크 아웃되지 않은 분기를 가져 오는 경우 I 으로 병합을 만듭니다.

관련 문제