2012-01-17 2 views
3

현재 현재 지점은 my_branch입니다. 나는이 오류가 왜왜 "git push"가 거부 되었습니까? ("git pull"이 도움이되지 않습니다.)

$ git pull 
Already up-to-date. 

:에

시도
$ git push 
Counting objects: 544, done. 
Delta compression using up to 4 threads. 
Compressing objects: 100% (465/465), done. 
Writing objects: 100% (533/533), 2.04 MiB | 1.16 MiB/s, done. 
Total 533 (delta 407), reused 0 (delta 0) 
To [email protected] 
    4ed90a6..52673f3 my_branch -> my_branch 
! [rejected]  master -> master (non-fast-forward) 
error: failed to push some refs to '[email protected]' 
To prevent you from losing history, non-fast-forward updates were rejected 
Merge the remote changes (e.g. 'git pull') before pushing again. See the 
'Note about fast-forwards' section of 'git push --help' for details. 

git pull에 결과를 : 내가 얻을 원격 REPO에 변경을 추진하려고? 어떻게이 문제를 해결하고 git push을 성공적으로 수행 할 수 있습니까?

답변

13

현재 분기가 my_branch입니다.

귀하의 문제입니다. 당신이 잡아 당길 때, Git은 여러분의 지점 my_branch이 아니고master이 아니며, origin/master 뒤에 있으며 빨리 감기 병합이 불가능하다고 말하고 있습니다.

마스터를 밀기 위해서는 master을 체크 아웃해야합니다. 이렇게하면 origin/master에서 대기중인 변경 사항이 통합되어 사용자 자신의 변경 사항을 적용 할 수 있습니다.

git checkout master 
git pull 
# resolve conflicts, if any 
git push 
+2

만 "my_branch"밀어하려면 : 자식 푸시 원점 my_branch을. – ysdx

+0

승인 된 대답을 명확하게하기 위해 :'4ed90a6..52673f3 my_branch -> my_branch'는'my_branch'가 성공적으로 업데이트되었음을 ​​나타내지 만'! [거부 된] 마스터 -> 마스터 (비 - 빨리 감기)는 마스터 브랜치가 실패했음을 나타냅니다. 즉, 일부 refs *가 저장소로 푸시되지 못했지만 일부는 * my_branch와 같이 정상적으로 진행되었을 수도 있습니다. –

1

[master 브랜치는 이미 다른 answerd에 설명 된대로 다음 방금 마스터 분기에 풀을해야하지만, 그렇지 않으면 풀에 리베이스하도록 구성되어있는 경우 :]

는 당신이 얻을 경우 즉, 빨리 감기가 아닌 메시지 인 경우 이는 기존 커밋의 맨 위에서만 커밋을 푸시 할 수 있음을 의미하지만 그렇지 않은 경우를 수행하려고합니다. (원격 원점라고 가정)를 추진하기 전에 마스터에 REBASE를 수행

git checkout master 
git pull --rebase origin master 
git push 

또한이 질문을 참조 : git rebase and git push: non-fast forward, why use?