경고: remote HEAD가 존재하지 않는 ref를 참조하여 체크아웃할 수 없음
이것은 여러 원인에 대한 일반적인 오류인 것 같습니다.
"kiflea.git"이라는 간단한 베어 깃 레포가 있는데, 이렇게 복제합니다.
git clone git://kipdola.be/kiflea.git
git .warning: remote HEAD refers to nonexistent ref, unable to checkout.
그리고 네, .git 디렉토리를 제외하고는 맵에 버전 파일이 없습니다.어쨌든, 제가 해야 할 일은
cd kiflea
git checkout master
그리고 작동합니다. 모든 파일들이 거기에 있습니다.하지만 레포를 복제하면 마스터가 자동으로 확인된다고 생각했는데, 정확히 무슨 일이 일어나고 있는지, 어떻게 고칠 수 있을까요?
내가 그 일을 하고 난 후에 나는 그것을 알아차렸습니다.git checkout master은 내 bit,컬 .git됩니다.
[branch "master"]
remote = origin
merge = refs/heads/master
이 깃 저장소가 먼 옛날에 svn 저장소였다는 사실은 아마 흥미로울 것입니다.
할 때 ps: gitweb 하여 베어 저장소 를, 가 .master지점: http://kipdola.be/gitweb/ ?p=kiflea.git;a=
warning: remote HEAD refers to nonexistent ref, unable to checkout.원격(bare) 저장소에 다음 파일에 분기 참조가 포함되어 있음을 의미합니다.HEAD동일한 저장소의 게시된 분기 값과 일치하지 않습니다.실제로, 이 파일은 저장소를 복제한 후 기본적으로 체크아웃할 분기를 정의합니다.
경고는 체크아웃을 하지 않았다는 의미일 뿐입니다. 복제된 저장소는 그 외에는 문제가 없습니다.그냥 해요git branch -a를 볼 수 .git checkout the-branch-you-want그 문제를 해결하기 위해서입니다.
일반적으로 해당 파일의 기본 내용(.git/HEAD혹은 평범하게HEAD 리포지토리입니다.ref: refs/heads/masterclone다를(를) refs/heads/master은 .으로 Git 합니다 없이 .refs/heads/사즉,master기본값). 시도해 봅니다.git help symbolic-ref자세한 정보는.
이 상황의 문제점은 Git에서 원격 심볼릭 레퍼런스를 수정하는 방법을 제공하지 않기 때문에 Git 호스팅 공급자가 구현한 것(예: Settings - Default branch in GitHub)을 사용하거나 브랜치 이름을 사용해야 한다는 것입니다.master기의 HEAD할 수 면에 될 master영원히)
셸 권한이 수 있습니다cd path/to/git/repo; git symbolic-ref HEAD refs/heads/XYZ어디에XYZ는 기본적으로 사용할 분기 이름입니다.
이 문제를 해결할 수 있는 한 가지 방법은 커밋이 없는 새 원격 베어 레포를 만든 다음 수행하는 것입니다.git push name-of-the-remote my-special-branch-name단일 분기를 포함하는 베어 저장소가 생성됩니다.my-special-branch-name그러나.HEADsymbolic ref는 여전히 다음을 가리키는 기본값을 포함합니다.master. 따라서 위에 언급한 경고를 받게 됩니다.리모트를 수정할 수 없는 경우HEAD파일, 구문을 사용하여 분기를 게시할 수 있습니다.git push name-of-the-remote my-special-branch-name:master당신의 지역 지사가 전화했다는 뜻은my-special-branch-name지점으로 출판되어야 합니다.master원격으로
더 이상 사용하지 않아 같은 문제가 발생했습니다.master지점이 제 로컬 저장소와 원격 저장소에서 모두 사라졌습니다.
원격 저장소에는 아직도HEAD로 설정.master, 제가 실제로 사용하는 원격 지점으로 변경했고 모든 것이 잘 됩니다.
원격 저장소에 액세스할 수 있는 경우:
- 너의 것으로 가
remote_repo.git; - 편집
HEAD파일 - 바꾸다
ref: refs/heads/master로.ref: refs/heads/your_branch
예, 이는 git 클론이 마스터와 다른 분기를 체크아웃하려고 하는 것과 관련이 있습니다.그냥 이렇게 해요.
git clone user@git-server:project_name.git -b branch_name /some/folder
이렇게 하면 분기 이름을 통해 정확한 분기를 복제할 수 있습니다.
답변이 늦었지만(2021년) 다른 사람들에게 도움이 될 것입니다.
빠른 수정 이 git 명령 실행git symbolic-ref HEAD refs/heads/main
고마워요 @alexey-vazhnov
베어 리퓨즈를 생성할 때git init --bare세트장ref: refs/heads/master인에HEAD파일 그러나 이 베어레포를 복제할 때 기본 분기는main, 이것이 문제이므로 변경해야 합니다.HEAD줄로 묶어서 놓아두다main' instead of 매스터, 즉
ref: refs/heads/main
Gitlab의 경우 기본 분기에 있음을 보여줍니다(예:master() 실제로 작업에 참여하지 않을 수도 있습니다. 다시 설정하면 다음과 같이 수정할 수 있습니다.
- 새 분기를 만들 수 있습니다.
asd - settings > repository > Default 브랜치(기본 브랜치)를 통해 기본 브랜치가
master - 에 설정합니다.
asd - 다시 설정 위치
master - 삭제
asd분점
완료, 이제 기본 분기는master
이 오류가 표시되었음에도 불구하고 - 내 프로젝트가 여전히 해당 저장소에 연결되어 있음 - 를 실행했습니다.git branch명령을 내리고 적절한 가지를 보았습니다. 그리고는 달려갔습니다.git checkout *branchname그리고 BOOM - 다 잘 지냈습니다.
이 문제는 10년 전 문제입니다.이렇게 해결했습니다.
clone 명령을 사용하여 repoosing을 수행한다고 가정하면 다음과 같은 로그가 표시됩니다.
git clone https:// abcgit-repo.abcool repo
'abcgit404.sas as my cool repo'로 복제...원격:개체 수 세기: 198, 원격으로 완료:출처 찾기: 100%(26/26) 수신객체: 80%(176/219)에 208(델타 0) 수신객체: 100%(219/219), 49.09KiB | 163.00KiB/s 완료. 경고: remote HEAD는 존재하지 않는 ref를 의미하며, 체크아웃할 수 없습니다.
이제 원격 HEAD를 해결하려면 존재하지 않는 ref를 참조하고, 다음을 수행할 수 없습니다.
지점을 먼저 확인하면 다음과 같은 로그가 표시됩니다.
- git 체크아웃 리모콘/ origin/ 메인라인
HEAD는 현재 xyz에 있습니다.
- 현재 지점 앞에 * 지점이 있을 모든 지점 보기
깃 가지 -a
)*(/됨)
지지nn/아
격n/b
지지n/c
격n/d
메인라인격n/
- 위에서 지점명 복사 후 체크아웃 실행 -b
예: 본선 체크아웃:
git 체크아웃 - 리모컨/origin/메인라인
*///a
격n/b
지지n/c
격n/d
메인라인격n/
그러면 문제가 해결됩니다.
베어 레포를 만들 때도 같은 문제가 있었습니다.
레포를 복제해서 로컬 마스터 브랜치를 만든 다음 마스터를 원격 레포로 밀어 넣었습니다.
1) 레포를 복제하다
$ git.exe clone --progress -v "the remote path" "my local path"
2) 로컬에 마스터 분기를 만듭니다.
$ git checkout -b master
3) 지방 지부에서 어떤 일을 저지르다
$ git add readme.md
$ git commit –m “Added readme”
4) 원격에서 로컬 마스터 푸시
$ git push origin master
원격 저장소에 분명 문제가 있습니다.저장소의 새 복제본을 만들어 수정할 수도 있습니다.또한 마스터 브랜치에 대한 새로운 커밋을 추진하는 것도 효과가 있을 수 있습니다.
가 보기엔 의 인 것 같아요.*원격 서버를 속이고 있는 커밋 로그에서.
수 다른 는 하여 실패합니다.404 - Unknown commit object또는 이와 유사합니다. 특히 요약 페이지에서.
마지막 커밋 메시지를 수정할 수 있는지 확인한 다음 업데이트를 강제로 눌러 수정 여부를 확인합니다.서버 데몬에 버그가 있을 수 있습니다.수정이 된다면 gitlist git@vger.kernel.org 에서 보고할 가치가 있을 것입니다. (plain 문자 메시지만 해당)
제 경우에는 레포가 비어있었습니다.
git checkout --orphan master
git add some_file
git commit -m 'init'
git push origin master
실제로 사용 가능한 마스터 브랜치가 없는 경우 다음을 확인하십시오. .git' 폴더 안에 'packed-refs'라는 이름의 파일이 있는 경우 해당 파일을 열면 나열된 모든 참조를 찾을 수 있습니다.
아래와 같은 것;
# pack-refs with: peeled fully-peeled
e7cc58650190bd28599d81917f1706445d3c6d8b refs/tags/afw-test-harness-1.5
^cfae4f034e82591afdf4e5ed72279297d0eee618
6afe1bcfa4bd74de8e0c8f64d024e1cc289206df refs/tags/afw-test-harness-2.1
^c32f7fa495d4b44652f46c065fcd19c3acd237a6
72f2e4284dfbf27c82967da096c6664646bbdd19 refs/tags/android-1.6_r1
^50992e805e758e2231f28ec2127b57a1a9fd0ddc
0cbd528cad1cee9556098b62add993fc3b5dcc33 refs/tags/android-1.6_r1.1
그럼 사용;
git checkout refs/tags/xxxx
아니면
git checkout 'HASH value'
필요한 버전을 확인할 수 있습니다.감사해요.
저는 다음과 같이 해결하는 것 같습니다.
git checkout -b master
git push
이렇게 하면 기본 마스터가 생성되고 다른 지점을 확인할 수 있습니다.
베어 저장소를 만들고 복제한 다음 마스터 브랜치를 푸시하지 않을 때 이 문제가 발생했습니다.새로운 git 클라이언트를 테스트하고 있었는데 업스트림 마스터가 생성되지 않았습니다.
새로운 마스터 브랜치를 만들고 밀어넣음으로써 수정했습니다. 그러면 새로운 마스터에 대한 지역의 모든 커밋을 체리 픽하고 밀어 넣을 수 있습니다.그것이 완료되고 난 후 나는 잘 복제할 수 있었습니다.
언급URL : https://stackoverflow.com/questions/11893678/warning-remote-head-refers-to-nonexistent-ref-unable-to-checkout
'codememo' 카테고리의 다른 글
| AngularJS로 기본 드래그 가능? (0) | 2023.09.20 |
|---|---|
| div - jQuery의 내용 변경 (0) | 2023.09.20 |
| jQuery를 사용하여 동적으로 추가된 요소에 이벤트 수신기 추가 (0) | 2023.09.20 |
| 키업에서 텍스트 상자 포스트백을 만들려면 어떻게 해야 합니까? (0) | 2023.09.20 |
| 맞춤형 주문으로 결과를 얻는 방법은? (0) | 2023.09.20 |