developer tip

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

copycodes 2020. 11. 11. 20:19
반응형

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


나는 여기에서 같은 질문을하는 몇몇 사람들을 보았지만 그들의 조언이 나에게 적용되지 않는 것 같습니다. 제목에 경고가 표시되지만 "master"라는 태그가 없습니다. 이것은 다음의 결과입니다 git branch -a.

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

여기서 무엇이 잘못 될 수 있는지 아십니까? 나는 지금 git을 몇 달 동안 사용하지 않았기 때문에 이러한 모호함이 미래에 repo를 엉망으로 만들지 않을까 걱정합니다.


나를 위해 "update-ref"명령을 잘못 실행했을 때이 경고의 원인을 훨씬 더 일찍 추적했습니다. 첫 번째 인수에 전체 refs / heads / mybranchname 경로를 지정하는 것을 잊은 경우 .git / mybranchname 파일이 생성되고 나중에 해당 분기로 전환하려고 할 때이 경고가 표시됩니다.

.git / mybranchname을 삭제하면됩니다. 예 :

rm .git/master

참고로 update-ref 명령의 올바른 형식은 다음과 같습니다.

git update-ref refs/heads/mybranchname mytargetbranch

"refs / heads"부분을 잊지 마세요!

또한 update-ref에 대한 가장 일반적인 사용 사례는 분기를 다른 커밋을 가리 키도록 수동으로 이동하는 것입니다.

git branch -f myBranchToMove destinationBranchOrHash

이 구문은 오류가 발생하기 쉬운 refs / heads 경로 한정자가 필요하지 않기 때문에 더 쉽습니다.


" Git : refname ' master'is ambiguous "에 자세히 설명 된대로 heads/mastergit repo 내의 다음 네임 스페이스 중 하나에 다른 마스터가 있음을 의미합니다 .

refs/<refname> 
refs/tags/<refname>
refs/heads/<refname>
refs/remotes/<refname>
refs/remotes/<refname>/HEAD

또는 Magnus답변./<refname> 에서 언급했듯이 .


git fetch --prune

git pull origin branch-name

문제를 해결해야합니다.


향후 참조를 위해 동일한 문제가 발생했으며 결국 여기에 설명 된 솔루션이 작동하게되었습니다 . 기본적으로 Git: warning: refname 'xxx' is ambiguous경고를 받으면 다음을 사용 git show-ref xxx하여 xxx분기에 대한 참조를 확인하고 충돌하는 항목을 확인할 수 있습니다.

내 시나리오에서는 xxx이름이 같은 태그 와 분기 이름이었습니다. 태그가 실수로 만들어져 서버에서 제거되었으므로 서버와 일치하도록 로컬 태그를 업데이트하기 만하면되었습니다 git fetch -p -P. 이 명령은 여기 에 자세히 설명되어 있습니다.


태그와 같은 이름으로 브랜치를 만들 때 비슷한 문제 (마스터가 아님)가 발생했습니다.

이것은 https://stackoverflow.com/a/5480292/150953 태그를 제거하는 데 도움이되었습니다.

git push --delete origin tagname

참고 URL : https://stackoverflow.com/questions/13073062/git-warning-refname-master-is-ambiguous

반응형