徹底解決 GitHub 拉取代碼網速慢的問題
- 2020 年 2 月 13 日
- 筆記
本人重度依賴 GitHub,面向 GitHub 編程,GitHub 可以讓我每天早上打開電腦,假裝了解最新開源項目。
最近你們有沒有發現,GitHub 明顯變慢了,如果沒有 fanqiang,拉取代碼的速度簡直慘不忍睹,如果拉取的量少還可以勉強拉下來,但是遇到數據量大的時候,2 KiB/s 的速度你能忍?拉到中途超時就讓你痛不欲生。
最近我就遇到這個問題,seata 社區的 seata.github.io 倉庫有陣子突然增加了好多數據,我發現我已經拉不下來了,這時可以利用 Gitee 作為中間代理,下面詳細說說具體操作過程。
在 GitHub 中,一共有兩個倉庫:
- seata:Github 的 Seata 主倉庫為:https://github.com/seata/seata.github.io.git
- objcoding:我從 Seata 主倉庫中 fork 過來一個倉庫,地址為:https://github.com/objcoding/seata.github.io.git
以下內容將用 seat、objcoding 表示這兩個倉庫。
Gitee 創建倉庫時,可以導入已有倉庫時選擇從 GitHub 倉庫中導入,這時我們填寫 Seata 主倉庫地址,意味着 Gitee 倉庫將可以從 Seata 主倉庫中同步代碼 :

將 Gitee 倉庫 clone 到本地(此時倉庫名稱默認 origin):
git clone https://gitee.com/objcoding/seata.github.io.git

這個速度快到我想哭,你能想像GitHub 2 KiB/s 的悲慘人生么。
添加 objcoding 遠程倉庫:
git remote add objcoding https://github.com/objcoding/seata.github.io.git
fetch objcoding 遠程倉庫內容到本地:

速度很快,因為遠程倉庫中的絕大部分代碼,已經從 gitee 拉取下來了。
添加 seata 遠程倉庫:
git remote add seata https://github.com/seata/seata.github.io.git
同理,fetch seata 遠程倉庫內容到本地。
這時候,我本地倉庫就擁有了三個遠程倉庫了,分別是:
- origin:碼雲倉庫,該倉庫可以從 seata 倉庫中同步代碼;
- objcoding:從 seata 倉庫中 fork 的倉庫;
- seata:seata 主倉庫。
為什麼這裡還需要添加 seata 倉庫呢?這是因為一般來說,seata 主倉庫增加的代碼數據量都很少,即使是 2Kib/s 的速度,也是可以拉取下來的,所以平時可以直接從 seata 主倉庫中拉取最新代碼就可以了,但是像 seata.github.io 倉庫,突然某個大佬上傳了幾十兆數據,那麼此時我就可以利用 Gitee 倉庫去同步這些代碼,具體操作如下:

接下來 fetch gitee 對應的分支,就可以將這些數據拉取下來了。

以上是整個同步過程分析。
近期熱文