[Git] git clone 出現 remote HEAD refers to nonexistent ref 的錯誤訊息

[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,320 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料