2010-11-30 5 views
28

방금 ​​새 분기를 가져 왔고 일부 로컬 변경을 수행하고 커밋하고 밀어 넣으려고했습니다. 나는이 오류를 받았다 : ! [rejected] groups -> groups (non-fast forward) 그래서 나는 당기려고했다. 그러나 들었다. Already up-to-date.git pull은 최신이지만 git push는 빨리 감기를 거부합니다.

내가 끌어 당기는 것은 여기에있다.

~/dev$ git pull origin groups 
Already up-to-date. 
~/dev$ git push origin groups 
To /mnt/ebs/git/repo.git 
! [rejected]  groups -> groups (non-fast forward) 
error: failed to push some refs to '/mnt/ebs/git/repo.git' 

어떻게 이런 일이 발생할 수 있으며 어떻게 해결할 수 있습니까?

+0

-v –

+0

과 함께 git push를 실행 해보십시오. @dan : -v는 repo에 대한 경로 이외의 출력을 다시 제공하지 않습니다. '/ mnt/ebs/git/repo.git'을 푸시하십시오. – Jake

+0

두 저장소의 그룹 머리의 해시를 살펴 봅니다. 일치시키지 않으면 그룹의 헤드 해시를 봅니다. 리모컨은 로컬의 접두어가 아니 었습니다 –

답변

18

브랜치를 당길 때 "--track"옵션을 사용 했습니까 (원격 브랜치를 추적하는 로컬 브랜치를 유지하기 위해). 그렇지 않으면 "병합"명령이 작동하지 않는다고 설명 할 수 있습니다.

수동으로 병합 작업을 수행 할 수 있습니다

git log --graph --oneline --all --decorate 

그것을 :

git fetch 
git merge origin/groups 

로컬 및 원격 REPOS을 비교하려면, 난 당신이 명령을 제안 (별칭에 추가, 그것은 유용합니다) 분기 레이블을 보여주는 프로젝트 히스토리 트리를 인쇄합니다. 그래서 당신은 당신의 지점과 원산지가 갈라지는 곳을 볼 수 있습니다.

참고 : 대신 "병합"의 선형 역사를 보존하려는 경우, 당신이 밀어 전에 리모콘의 현지 지점의 "리베이스"는 수행 할 수 있습니다

git rebase origin/groups 
git push origin groups 
+0

필자는 graph에서 어떤 행운을 본 적이 한번도 없었습니다. 알고있는 한 최신 버전의 git을 가지고 있습니다. 그러나 그것은 인식 할 수없는 주장입니다. – Jake

+2

나는 origin/groups뿐만 아니라 원격이라는 이름의 로컬 브랜치를 가지고있다. – Jake

5

내가 여기 온 다른 문제.

내 지혜가 모든 가지를 밀도록 설정되었습니다. 나는 지점 FOO에 있었지만, 최신 상태가 아니었던 주인을 밀어 붙이려고했다. 트릭이 마스터를 밀어려고 몰래되었다

To [email protected]:repo 
! [rejected]  master -> master (non-fast-forward) 

내가 유일한 기본적으로 현재의 지점을 밀어 내 .gitconfig에 다음과 같은 추가 :

[push] 
    default = current 
2

이 질문에 대한 답변하지 않습니다 물었다. 같은 오류 메시지와 함께 다른 문제가있었습니다.

로컬 브랜치에 원격 브랜치가 없기 때문에 [git pull]이 올바르게 설정되지 않았습니다. 이것은 git remote show origin의 o/p에서 분명합니다. 그래서 git pull 대신 git pull origin <branch_name>을 사용하여 변경 사항을 가져와야했습니다.

+0

안녕하세요 가넷, 이건 내 문제와 같은 것 같습니다. 내가 원격으로 내 현재 지점을 매핑하는 솔루션이 될 수 알고 싶어요 ... –

+0

안녕 Mukesh, 나는 매핑을 추가하려고하지 않았습니다. 방금 원거리 repo 별칭 '원점'을 지정하고 대답에서 언급 한대로 git을 실행합니다 : 변경 내용을 가져 오기 위해 git pull 대신 'git pull origin '. – garnet

+0

Garnet에게 응답 해 주셔서 감사합니다. 그 해결책이 나를 위해 일하는 것 같습니다. 그러나 git pull을 원점없이 구성하려면 명령이 필요합니다. 이전처럼 작동해야합니다. –

관련 문제