如何避免Git clone指令在複製大專案時候出錯?

前言

有時候使用git clone指令去複製大專案時,會出現一些錯誤,導致相關的專案無法複製到目的端,在本篇文章則要試著解決該問題,並成功的把專案複製回來。

出現的錯誤

假設我們需要將Docker的官方文件透過「git clone」指令複製回來的話,有可能會出現下列的錯誤:


$ git clone https://github.com/docker/docs
Cloning into 'docs'...
remote: Enumerating objects: 428789, done.
remote: Counting objects: 100% (3343/3343), done.
remote: Compressing objects: 100% (1733/1733), done.
fatal: the remote end hung up unexpectedly4.66 MiB | 879.00 KiB/s
fatal: early EOF
fatal: index-pack failed

會出現上述的錯誤,主要都是與網路問題有關,需切換到較好的網路則可以解決該問題,但是無法的切換其他網路,則需要試著修改「git」相關的設定。


git config --global core.compression 0

試著關閉在複製專案時,複製壓縮的內容,但這會讓複製專案的過程變慢。


git config --global http.postBuffer 524288000

在複製專案時,設定並加大較大的buffer size。

再試一次之後,則可以複製專案成功了。


$ git clone https://github.com/docker/docs
Cloning into 'docs'...
remote: Enumerating objects: 428789, done.
remote: Counting objects: 100% (3343/3343), done.
remote: Compressing objects: 100% (1732/1732), done.
remote: Total 428789 (delta 1911), reused 2713 (delta 1551), pack-reused 425446
Receiving objects: 100% (428789/428789), 684.88 MiB | 3.85 MiB/s, done.
Resolving deltas: 100% (271801/271801), done.

參考資料

Posted in Git