[Git] git clone 出現 remote HEAD refers to nonexistent ref 的錯誤訊息
今天想要從同事架設的 git repository 複製東西下來,
git clone 指令卻出現意外的錯誤,
說 remote HEAD refers to nonexistent ref, unable to checkout:
testuser@localhost ~ $ git clone ssh://git@colleague/opt/share.git Cloning into 'share'... remote: Counting objects: 47006, done. remote: Compressing objects: 100% (19193/19193), done. remote: Total 47006 (delta 31848), reused 40706 (delta 27086) Receiving objects: 100% (47006/47006), 3.44 GiB | 2.13 MiB/s, done. Resolving deltas: 100% (31848/31848), done. warning: remote HEAD refers to nonexistent ref, unable to checkout.
嗯… 對於只會 git clone, pull, push, add, commit 幾個指令的我來說,
這類提到 HEAD 的錯誤訊息就很讓我頭大…
爬文了一下,找到一些線索:
Error: Remote HEAD refers to nonexistent ref, unable to checkout
warning: remote HEAD refers to nonexistent ref, unable to checkout
感覺上是遠端的 HEAD 可能指向了一個不存在的分支 (branch)…
連上同事的機器看一下,HEAD 目前是指向 refs/heads/master:
[git@colleague share.git]$ cat HEAD ref: refs/heads/master
看起來是蠻正常的設定,
但 refs/heads 目錄下,只有 develop 和 main 兩個檔案,並沒有 master:
[git@colleague share.git]$ ll refs/heads/ -rw-rw-r--. 1 git git 41 Aug 13 14:54 develop -rw-rw-r--. 1 git git 41 Aug 16 18:22 main
想起同事說目前使用的分支應該是 main…
嗯… 猜測原本有個 master 分支,
但後來不知什麼原因將 master 分支刪除,
又沒將 HEAD 指向 main 分支的緣故吧 (可能不是用 git 指令砍的?)
解決方法也很簡單,把遠端 git 的 HEAD 內容改成正確的分支就行了,
像修正後的 HEAD 內容如下:
[git@colleague share.git]$ cat HEAD refs/heads/main
重新執行 git clone 指令,這次就沒再遇到問題囉~
(本頁面已被瀏覽過 5,464 次)