git pull이 “참조를 확인할 수 없습니다” “로컬 참조를 업데이트 할 수 없습니다”실패 [new branch]

git 1.6.4.2를 사용하면 시도 할 git pull때이 오류가 발생합니다.

error: unable to resolve reference refs/remotes/origin/LT558-optimize-sql: No such file or directory
From git+ssh://remoteserver/~/misk5
 ! [new branch]      LT558-optimize-sql -> origin/LT558-optimize-sql  (unable to update local ref)
error: unable to resolve reference refs/remotes/origin/split-css: No such file or directory
 ! [new branch]      split-css  -> origin/split-css  (unable to update local ref)

시도 git remote prune origin했지만 도움이되지 않았습니다.



답변

다음을 사용하여 로컬 저장소를 정리하십시오.

$ git gc --prune=now
$ git remote prune origin

남자 git-gc (1) :

git-gc - Cleanup unnecessary files and optimize the local repository

git gc [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune]

       Runs a number of housekeeping tasks within the current repository, such as compressing file revisions
       (to reduce disk space and increase performance) and removing unreachable objects which may have been
       created from prior invocations of git add.

       Users are encouraged to run this task on a regular basis within each repository to maintain good disk
       space utilization and good operating performance.

남자 자식 원격 (1) :

git-remote - manage set of tracked repositories

git remote prune [-n | --dry-run] <name>

           Deletes all stale remote-tracking branches under <name>. These stale branches have already been
           removed from the remote repository referenced by <name>, but are still locally available in
           "remotes/<name>".


답변

나에게도 일어났다. 제 경우에는 나쁜 심판이 주인이었고 다음과 같이했습니다.

rm .git/refs/remotes/origin/master
git fetch

이것은 git이 ref 파일을 복원하게했습니다. 그 후 모든 것이 다시 예상대로 작동했습니다.


답변

이것은 나를 위해 일했습니다.

git gc --prune=now


답변

나를 위해 폴더에서 오류가 발생하는 파일을 제거했습니다 .git/refs/remotes/origin/.


답변

시도 해봐:

git gc --prune=now

git remote prune origin

git pull


답변

다음 명령을 실행하십시오.

rm .git/refs/remotes/origin/master

git fetch

git branch --set-upstream-to=origin/master

만약을 위해 .git/refs/remotes/origin/master, 당신이 무엇인지 알아야 할 필요가 있다면
, Git ReferencesRemotes 섹션을 읽을 것 입니다.


답변

참조가 깨질 수있는 방법을 추가하고 싶습니다.

가능한 근본 원인

내 시스템 (Windows 7 64 비트)에서 BSOD 가 발생 하면 저장된 참조 파일 중 일부 ( BSOD 가 발생 했을 때 현재 열려 있거나 쓰여질 가능성이 있음)가NULL 문자 (ASCII 0) .

다른 사람들이 언급했듯이, 수정하려면 유효하지 않은 참조 파일을 삭제하고 리포지토리를 다시 가져 오거나 다시 잡아 당기면됩니다.

오류: cannot lock ref 'refs/remotes/origin/some/branch': unable to resolve reference 'refs/remotes/origin/some/branch': reference broken

솔루션 : 파일 삭제%repo_root%/.git/refs/remotes/origin/some/branch