1. 程式人生 > >warning: 遠端 HEAD 指向一個不存在的引用,無法檢出(warning: remote HEAD refers to nonexistent ref, unable to checkout)

warning: 遠端 HEAD 指向一個不存在的引用,無法檢出(warning: remote HEAD refers to nonexistent ref, unable to checkout)

問題描述:
最近做Android開發,採用的是Git管理程式碼,從git伺服器上獲取Contacts模組的程式碼:
git clone your-git-server
提示:warning: remote HEAD refers to nonexistent ref, unable to checkout.
並且Contacts模組的程式碼並沒有下載到工作區。

解決方法:
原因是.git目錄下.git/refs/heads不存在HEAD指向的檔案,這個時候可以用git show-ref命令檢視
獲得如下列印:
5fa0b60252ca2c10fa3c2e12780d351c047c802d refs/remotes/origin/branch_qc_origin
5fa0b60252ca2c10fa3c2e12780d351c047c802d refs/tags/XXXXXXXXXXXX
48dee3a5f7b9cac98349e949275c652e02b0b67e refs/tags/PXXXXV0.0.0B01-bringup
505a9bb0c6d815e6db561f7cb7ed0e20cd73ddde refs/tags/PXXXX_02550_201309260427
e2b211a3c9d8dabec9fe1018b4f7db5c953832ea refs/tags/PXXXX_bsp_02550_201309260422
0848e8b7922c78dbb364aa0e7c1b8375d16a70a3 refs/tags/branch_PXXXX_02550_201309190102
7384803be7c8866393b96ebaaa7e1b2b119654e7 refs/tags/branch_PXXXX_02550_201309200102
480f444dd26bb238aeaacf15da748ad861ea9378 refs/tags/branch_PXXXX_02550_201309210102


……
可以看出,全部是標籤tag,並沒有類似refs/head/branch_name
繼續執行命令:
git branch //輸入出空
git branch -a //輸出 remotes/origin/branch_qc_origin
git checkout remotes/origin/branch_qc_origin // ① checkout的是git branch -a輸出的內容
這樣通過ll命令檢視,Contacts程式碼下載到工作目錄了
接著建立分支:
git checkout -b remotes/origin/branch_qc_origin // ② 建立分支
git branch //可以看到輸出*remotes/origin/branch_qc_origin了,不再為空
git branch -m remotes/origin/branch_qc_origin master // ③ 重新命名分支叫master

git show-ref命令檢視也能看到head了
至此,問題得到解決。