前情回顧:git項目放在公司服務器上面,克隆等操作需要連接VPN才能操作。由于項目比較大,網速比較慢,克隆項目經常出現fetch-pack: invalid index-pack output。在網上查找各種解決方法。也就這一種有點效果。僅供參考,不一定適合每一個人。
出現該問題的原因是git clone的項目過大,比如我的項目500多兆(網絡不暢一般都是使用VPN出現這個問題)導致項目拉去失敗。
網上其他解決方案:設置全局postbuffer和time,感覺沒什么毛用,只要網絡不好經常斷線無解。
感覺有點用的解決方法記錄一下:
1、首先拉去項目最后一次提交: git clone --depth=1 項目地址
2、拉取全部項目內容: git fetch --unshallow , 一般不大的項目都可以拉取下來了
3、如果步驟2還是報錯 fatal: fetch-pack: invalid index-pack output?
? ? ?那么可以進入項目目錄執行 git fetch --depth=100(如果還是報錯那就把數字調小,如:git fetch --depth=10),執行多次每次增加一段
? ? ?如:git fetch --depth=100
? ? ?? ?git fetch --depth=200
? ? ?? ?git fetch --depth=500
4、步驟3執行完成后執行 git fetch --unshallow 拉取全量分支信息,如果報錯 fatal: –unshallow on a complete repository does not make sense,則執行:git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"? ? ? ? ? ? ? ?命令增加git的orgin倉庫的全部分支映射
5、最后執行: git fetch -pv拉取全部分支(這一步還是全量拉去分支,如果網絡波動厲害,經常掉線,還是會失敗的)。
當執行這一步能成功的話,說明網絡正常了。對于正常clone這個時候報錯代碼還在資源管理器中,如果正常clone的話報錯就全部刪掉了。
正常clone肯定也會沒問題的啦。
上面的方法都是輔助,想徹底解決問題,還是需要找網絡部門叫他們把網絡給搞好了。