경고 : refname 'HEAD'가 모호합니다.


139

나는 Git을 처음 사용하고 다음 명령을 실행하면 하나의 분기가 너무 많은 것 같습니다.

warning: refname 'HEAD' is ambiguous.

다음과 같은 결과가 나타납니다.

warning: refname 'HEAD' is ambiguous.
From github.com:dagda1/hornget
 * branch            master     -> FETCH_HEAD
warning: refname 'HEAD' is ambiguous.
warning: refname 'HEAD' is ambiguous.

내가 실행하면 git branch -a

나는 다음을 얻는다 :

HEAD
* master
remotes/emmekappa/master
remotes/origin/HEAD -> origin/master
remotes/origin/master

에 의해 혼동됩니다 remotes/origin/HEAD -> origin/master.

이것이 무엇이며 어떻게 모호한 지점을 제거 할 수 있습니까?

모호한 지점을 추가했다고 생각되는 병합을 수행 하여이 단계에 도달했습니다.


11
가장 먼저 실행하려고하는 명령은 무엇입니까? 확실히 아니다warning: refname 'HEAD' is ambiguous.
벤 제임스

1
remotes/origin/HEAD -> origin/master문제가되지 않습니다 : 그것은 단지 어떤 브랜치가 remote인지를 보여줍니다 origin. 지사 이름 HEAD은입니다.
Jakub Narębski

3
실행하려는 명령을 표시하려면 질문을 편집해야한다고 생각합니다. :)
Kris

이것을 재현하려면 "git fetch origin HEAD : HEAD"를 실행하십시오. 분명히 현재 분기를 말 그대로 HEAD라는 새 분기로 병합하려고합니다.
Brain2000

답변:


224

문제는 HEAD분기가 현재 매우 위험하다는 것입니다. 현재 분기가 무엇이든에 대한 상징적 이름이기 때문입니다. 입니다.

이름을 바꾸십시오.

git branch -m HEAD newbranch

그런 다음 검사하고 수행 할 작업을 결정 (삭제 또는 설명적인 분기 이름으로 저장) 할 수 있습니다.

( origin/HEAD원격 지사는 문제가되지 않습니다)


브랜치와 이름이 같은 파일 또는 디렉토리가있는 경우에도 발생할 수 있습니다.
매트 코놀리

2
하지만 origin/HEAD힘은 문제가되지 않습니다, 당신은 실수라는 지점 작성하면 origin/somebranch문제가 (같은 "모호한"오류 메시지가 표시됩니다). "somebranch"에서 당기려고하면 리모컨이 아닌 로컬 (우연한) 지점에서 당겨집니다. 이 경우, 플리커 플라이의 제안은 git branch -d origin/somebranch훌륭하게 작동 한다는 것을 알았 습니다.
machineghost

고마워요. "HEAD"분기는 내가 아닌 자동으로 만들어집니다. 단일 병합 커밋이 포함되어 있었고 reflog를 사용하여 깨끗한 상태로 되 돌리지 못했습니다. 그래서 지점의 이름을 변경하고 삭제 한 후 "1 앞서"로컬 마스터를 원산지 / 마스터로 리베이스하여 문제없이 푸시했습니다
Yunus Nedim Mehel

1
브랜치뿐만 아니라 태그에서도 마찬가지입니다.
sebix

1
아! 머리가 있고 head(소문자) 라는 분기를 만든 로봇을 사용합니다 .
오리온 엘렌 질

36

또한 원하지 않는 경우 분기를 삭제합니다.

git branch -d HEAD

대문자 -D를 사용 하여 삭제를 강제 실행하십시오.

git branch -D HEAD

3
그러나 그것은 여전히 ​​모호하게 남아있을 것입니다. 그것을 제거하는 방법이 있습니까?
RzR

27

다음을 HEAD사용하여 이름이 지정된 태그를 생성 한 경우 ...

git tag HEAD

... 다음을 사용하여 해당 태그를 삭제할 수 있습니다.

git tag -d HEAD

이 경우 참조 : kerneltrap.org/git-tag HEAD


이것은 실수로 HEAD라는 이름의 태그를 추가 할 때 발생하므로 여기에서 제안한대로 삭제해야합니다.
user1610308

1

즉, "head"라는 분기가 있습니다. 나는 같은 문제가 있었고 다음 명령을 수행하여 해결했습니다.

git branch -d head

1

자식 저장소에서 사용 가능한 참조를 확인하십시오. 저장소에 두 개의 HEAD가 있습니다. 이것은 이름이 HEAD 인 브랜치를 모호하게 만듭니다.

git show-ref

해결책:

  • 지점 이름 바꾸기

    git branch -m HEAD <new_branch_name>
    

    또는

  • 지점 삭제

    git branch -d HEAD
    
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.