­

徹底解決 GitHub 拉取代碼網速慢的問題

  • 2020 年 2 月 13 日
  • 筆記

本人重度依賴 GitHub,面向 GitHub 編程,GitHub 可以讓我每天早上打開電腦,假裝了解最新開源項目。

最近你們有沒有發現,GitHub 明顯變慢了,如果沒有 fanqiang,拉取代碼的速度簡直慘不忍睹,如果拉取的量少還可以勉強拉下來,但是遇到數據量大的時候,2 KiB/s 的速度你能忍?拉到中途超時就讓你痛不欲生。

最近我就遇到這個問題,seata 社區的 seata.github.io 倉庫有陣子突然增加了好多數據,我發現我已經拉不下來了,這時可以利用 Gitee 作為中間代理,下面詳細說說具體操作過程。

在 GitHub 中,一共有兩個倉庫:

  1. seata:Github 的 Seata 主倉庫為:https://github.com/seata/seata.github.io.git
  2. 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 遠程倉庫內容到本地。

這時候,我本地倉庫就擁有了三個遠程倉庫了,分別是:

  1. origin:碼雲倉庫,該倉庫可以從 seata 倉庫中同步代碼;
  2. objcoding:從 seata 倉庫中 fork 的倉庫;
  3. seata:seata 主倉庫。

為什麼這裡還需要添加 seata 倉庫呢?這是因為一般來說,seata 主倉庫增加的代碼數據量都很少,即使是 2Kib/s 的速度,也是可以拉取下來的,所以平時可以直接從 seata 主倉庫中拉取最新代碼就可以了,但是像 seata.github.io 倉庫,突然某個大佬上傳了幾十兆數據,那麼此時我就可以利用 Gitee 倉庫去同步這些代碼,具體操作如下:

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

以上是整個同步過程分析。

近期熱文

Seata 配置中心實現原理

Seata AT 模式啟動源碼分析

分佈式事務中間件 Seata 的設計原理

我對支付平台架構設計的一些思考

聊聊 Tomcat 的架構設計

關於 Kafka 的一些面試題目

基於Jenkins Pipeline自動化部署

圖解:Kafka 水印備份機制

記一次 Kafka 集群線上擴容

Kafka重平衡機制

RocketMQ消息發送的高可用設計

深度解析RocketMQ Topic的創建機制

mybatis-plus 源碼分析之sql注入器

Mybatis源碼分析之Mapper註冊與綁定

從源碼的角度解析線程池運行原理

關於線程池你不得不知道的一些設置

你都理解創建線程池的參數嗎?

Java並發之AQS源碼分析(二)

Java並發之AQS源碼分析(一)