2012-12-03 2 views
15

개발자와 협력하여 지금까지 경험하지 못한 이상한 문제를보고 있습니다. 그는 저장소에서 작업 중이므로 밀어 넣기 전에 다른 사람의 최신 변경 사항을 가져와야합니다. 그의 모든 변화가 이루어졌습니다.b/c "변경 내용을 변경하지 못했습니다."상태가 변경되지 않는다고 말합니다.

때까지 충분히 합리적인 것 같다
$ git pull 
Cannot pull with rebase: You have unstaged changes. 
Please commit or stash them. 

...

$ git status 
# On branch master 
# Your branch and 'origin/master' have diverged, 
# and have 3 and 1 different commit each, respectively. 
# 
nothing to commit (working directory clean) 

뭐라고?

당기기 전에 git reset --hard HEAD을 시도했지만 풀링이 여전히 실패합니다.

오직 한 명의 녀석 만이 Mac을 보았습니다 (OSX 10.6.8). 어떤 아이디어? 나는 내 머리카락을 꺼내려고하고있다.

+0

'git config branch.autosetuprebase'를 실행하면 어떤 가치가 있습니까? 'always'로 설정되어 있다면 여기서 일어나는 일을 설명 할 수 있습니다. – ThomasW

답변

18

대신

git pull 

당신이 메시지

발생 원인을 확인하는 방법

git pull --no-rebase 

을 시도 할 수 있습니다

git fetch 
git rebase -p origin/master 

시도

분리 된 머리가 아닌 나뭇 가지에 있는지 확인하십시오. 리바 싱은 분리 된 헤드에서 작동하지 않습니다.

다음 명령을 실행하면 결과가 출력되지 않아야합니다.

git update-index -q --ignore-submodules --refresh 
git diff-files --ignore-submodules 
git diff-index --cached --ignore-submodules HEAD -- 
+2

흥미 롭습니다. 병합 만 ('git pull --no-rebase') 효과가있었습니다. 병합이 작동하는 이유는 알지만 rebase는 명시된 이유와 명백한 작업 디렉토리 상태를 제공하지 않습니다. 이 답변을 표시하려고하지만 더 많은 것을 이해하고 싶습니다. 그래서 그의 근본적인 문제를 해결하려고 할 수 있습니다. 당신의 도움을 주셔서 감사합니다. –

+0

@RobWilkerson 나는이 메시지를받은 이유를 실행할 수있는 몇 가지 점검을 통해 솔루션을 업데이트했습니다. –

+0

기쁨이 없습니다. 이러한 명령을 실행 한 후에도 여전히 끌어 올 수 없습니다. 아하. –

-1

진행중인 리베이스가있는 것처럼 보입니다. 먼저 git rebase --abort을 실행 해보십시오. 디렉토리, -x :

더 강력한 방법은 지역이

  • 가 (물론, .git 디렉토리 제외)

  • git clean -d -x -f (-d을 작업 디렉토리에있는 모든 파일을 삭제 포함 청소합니다 : 무시 된 파일 인 -f : 강제 실행의 경우 -f-n으로 바꿉니다.

그리고 나서 git reset --hardgit checkout을 확인하십시오.

또 다른 생각은 git reset --hard HEAD~N을 시도하는 것입니다. 즉, 많은 커밋을 다시 설정하고, 끌어 오기가 작동하고 로컬을 빨리 감기 할 것을 기대하는 것입니다. 그래도 문제가 해결되지 않으면

+0

고마워, @ chamila_c,하지만 나는 그것을 시행 착오의 일환으로 시도했다. 기쁨이 없습니다. –

+0

'git fetch'는 어떨까요? 최소한 리모컨의 로컬 복사본을 업데이트합니까? –

+0

'git fetch'는 정상적으로 작동하지만 나중에 가져 오려고해도 불행히도 영향을 미치지 않습니다. –

6

로컬 파일 시스템 또는 nfs 공유 작업 중입니까?

nfs 공유에서 작업 할 때와 정확히 같은 문제가있었습니다.

나는 mount 명령에 noatime 옵션을 추가 한 그것은 도움이 : 그런 다음 $의 자식 숨겨 놓은 노력 자식 끌어 오기 위해 시도 할 수

mount -t nfs -o noatime,... device dir 
관련 문제