답변:
나는 이것의 결과를 이해하지 못하지만 이 스레드에서 제안한 것처럼 이것을 만났을 때 나는 방금했다.
$ mv .git/refs/remotes/origin/HEAD /tmp
(만약에 대비해 보관) 그리고
$ git gc
불평하지 않고 일했다. 나는 어떤 문제도 겪지 않았습니다.
git prune
나를 위해 일했습니다 .Git에 축적되었지만 유용한 정보가 참조하지 않는 데이터를 삭제하는 방법입니다.
$ mv .git/refs/remotes/origin/HEAD /tmp
$ git gc
git prune
git gc
나를 위해 일했던 것보다 .git 폴더에서 그 파일 제거
내가 만난 문제 ( 위의 주석 에서 @Stavarengo가 언급 한 것과 동일한 문제 )는 기본 원격 분기 ( develop
내 경우)가 삭제되었지만 여전히 참조되었다는 것입니다..git/refs/remotes/origin/HEAD
.
.git/refs/remotes/origin/HEAD
내 편집기에서 열면 다음 과 같이 표시됩니다.
ref: refs/remotes/origin/develop
나는 조심스럽게 내 새 기본 지점에서 지점으로 편집하고 모두 잘했다 :
ref: refs/remotes/origin/master
저에게 팁을 준 단서는 달리기 git prune
가이 오류를 보여 주었다는 것입니다.
> git prune
warning: symbolic ref is dangling: refs/remotes/origin/HEAD
Trenton의 답변을 본 후, 저는 제 모습을 .git/refs/remotes/origin/HEAD
보고 그것이 현재 삭제 된 이전 브랜치를 가리키고 있음을 알았습니다.
그러나 파일을 직접 편집하는 대신 Ryan의 솔루션을 시도했습니다.
git remote set-head origin --auto
자동으로 파일을 새 브랜치로 설정하고 git gc
그 후에는 정상적으로 작동했습니다.
git remote set-head $REMOTE --auto
필자의 경우 $ REMOTE는 여러 원격 설정이 있기 때문에 기본 "원본"이 아닌 원격 별칭입니다.
이것이 효과가있는 것 같기 때문에 해결책은 다음과 같다고 생각했지만 실제로 문제를 해결하지 못하는 것으로 나타났습니다.
git remote set-head origin --auto
git prune
(첫 번째 명령 출력에서 권장 된대로) 사용 했기 때문에 무엇이 도움이되었는지 (첫 번째, 두 번째 또는 둘 다) 정확히 말할 수 없습니다.
git remote set-head origin --auto
내가 사용하지 않고 내 refs / remotes / origin / HEAD 파일 수정git prune
error: Multiple remote HEAD branches. Please choose one explicitly
, git remote set-head origin mybranch
오류를 없애기 위해 ( 'mybranch'브랜치가 체크 아웃되는 동안) 사용해야했습니다 .
심볼릭 참조가 손상되었을 수있는 것 같습니다 ... 다음과 같이 기본 브랜치로 교체해보세요. 예를 들어, 내 기본 브랜치는 master입니다.
$ git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/master
$ git fetch --prune
$ git gc
그것은 그것을 고칠 것입니다.
master
라는 다른 브랜치로 변경했기 때문에이 문제가 발생한 것 같습니다develop
. 일 나는에서 다시 변경하기 전에develop
에master
와 나는 이전의 기본 분기를 삭제develop
,하지만 내 작업 디렉토리에 파일이.git/refs/remotes/origin/HEAD
여전히 가리키는되었다refs/remotes/origin/develop
더 이상 존재한다. 이 상황 에서 파일 제거가 작동했습니다.