2013-12-14 5 views
6

다른 사용자와 협조하기 위해 Git을 사용하고 있지만, 오늘 "git pull"을 사용하여 일부 파일의 최신 변경 사항을 가져올 수 없으며 "git log"의 변경 사항을 볼 수 없습니다.'git pull'을 사용하여 파일을 업데이트하지 않습니다.

무엇이 문제 일 수 있습니까?

+1

그들이 제대로 작업을 푸시 했습니까? – Jepessen

+0

업데이트를 얻는 데 아무 것도없는 것 같습니다. 파일이 다른 사용자와 동일한 저장소에서 올바르게 커밋 되었습니까? 이 로그에는 의심의 여지가 없습니다. – Aditya

+0

당신은 당신이 당기려고하는 지점으로 하위 계급을 밀어 넣었습니까? –

답변

2

현재 지사를 확인하십시오. 당신이 지점에없는 경우

git status 
git branch 

, 당신은 아무것도를 병합 할 것 detached HEAD modegit pull에 있습니다.

git log --all --branches 

git log를 가져올 나뭇 가지에 새로운 커밋 (즉, remote tracking branches입니다)이있는 경우 당신이 볼 수 있는지 확인합니다 도움이됩니다.
그 커밋을 그래프로 표시하려면 git log alias을 사용합니다.

+0

좋은 생각. 가장자리 케이스를 덮으십시오. – Laereom

2

미완성 병합으로 풀을 방지 할 수 있습니다. 진행중인 커밋이 있는지 확인하십시오.

+1

커밋이 진행 중인지 어떻게 확인합니까? –

1

나는 이런 일이 일어날 수있는 또 다른 사례를 추가하려고했습니다. 스파 스 체크 아웃을 사용하고있었습니다. 어떤 이유에서 나는 작업 트리에서 디렉토리가 희박한 체크 아웃에 포함되어 있다고 생각했지만 (나는 그것이 .git/info/sparse-checkout에 열거되었다고 생각했지만) (나는 그것을 잊어 버린 어떤 이유로 .git/info/sparse-checkout에서 제거했다.) 그래서 pull 또는 checkout 또는 reset 또는 다른 명령으로 무시되는 것입니다. 새롭고 신선한 복제본에서 스파 스 체크 아웃 구성을 복제하기 시작하고 오류를 깨닫기 전까지는 매우 혼란 스러웠습니다.

스파 스 체크 아웃을 사용하는 경우에만 발생합니다. 스파 스 체크 아웃을 사용하지 않는 경우에는 발생하지 않습니다. (git config를 검사하여 sparseCheckout이 활성화되어 있는지 확인하고 .git/info/sparse-checkout의 존재를 확인하십시오.하지만 사용자가 수동으로 설정해야한다고 생각하기 때문에이 작업을 수행했는지 알 수 있습니다.) (Google이 무엇인지 궁금하다면 다른 방법으로는 추적/가져 오거나 가져 오는 체크 아웃에서 파일과 디렉토리를 생략하는 간단한 메커니즘)

4

제 경우에는 문제가 저였습니다 내 .git 폴더에 index.lock 파일이 있습니다. 나는 그것을 제거하고 잡아 당겼다.

+1

웬일인지 힘내이 언급하지 않는다! – CBHacking

관련 문제