使用git clone命令複製項目,報錯,如下圖
要了解這個報錯先得了解git clone的過程。git clone命令手下會下載整個倉庫到本地,目錄是./git/objects/pack,裏面有個.pack文件(也可能有多個)。這個報錯猜測應該是由於下載了這個文件後,檢測到此文件有問題,然後導致clone失敗。
這麼猜測的原因是,通過如下操作,可以把.pack下載下來
1.mkdir testProj
2.cd test Proj
3.git init
4.git remote add origin myUrl
5.git pull
這樣,可以把.pack下載下來
然後通過命令
git fsck --full
來驗證.pack的有效性,當.pack正常時,如下圖:
當.pack有問題時,如下圖:
很明顯,.pack中有object的異常,SHA1校驗沒通過
引起這個問題的原因目前還不清楚,一開始懷疑時硬盤問題,可是換了幾個盤clone都沒有成功
但是,換了電腦clone是正常的。
後來從同事那裏拷貝了一份代碼,通過git status .命令輸出如下:
這時候問題就很明顯了,是有三個文件,由於文件名有特殊符號(²),而我的系統沒有識別這個特殊符號,從而產生一個錯誤的文件名。在看看之前的報錯,也是三個報錯,更加確信是這三個文件引起的問題,把這三個文件從git上刪除掉,這個問題就解決了。