大家都知道國內訪問 Github 速度比較慢,很影響我們的使用。
如果你希望體驗到 Git 飛一般的速度,可以使用國內的 Git 托管服務——Gitee(gitee.com)。
Gitee 提供免費的 Git 倉庫,還集成了代碼質量檢測、項目演示等功能。對于團隊協作開發,Gitee 還提供了項目管理、代碼托管、文檔管理的服務,5 人以下小團隊免費。
接下來我們學習一下如何使用 Gitee。
由于我們的本地 Git 倉庫和 Gitee 倉庫之間的傳輸是通過SSH加密的,所以我們需要配置驗證信息。
我們在 Git Github 章節已經生成了自己的 SSH 公鑰,所以我們只需要將用戶主目錄下的 ~/.ssh/id_rsa.pub 文件的內容粘貼 Gitee 上。
選擇右上角用戶頭像 -> 設置,然后選擇 "SSH公鑰",填寫一個便于識別的標題,然后把用戶主目錄下的 .ssh/id_rsa.pub 文件的內容粘貼進去:
成功添加后如下圖所示:
接下來我們創建一個項目。
點擊右上角的 + 號,新建倉庫:
然后添加倉庫信息:
創建成功后看到如下信息:
接下來我們看下連接信息:
項目名稱最好與本地庫保持一致。
然后,我們在本地庫上使用命令 git remote add 把它和 Gitee 的遠程庫關聯:
git remote add origin [email protected]:imnoob/bjpowernode-test.git
之后,就可以正常地用 git push 和 git pull 推送了!
如果在使用命令 git remote add 時報錯:
git remote add origin [email protected]:imnoob/bjpowernode-test.git
fatal: remote origin already exists.
這說明本地庫已經關聯了一個名叫 origin 的遠程庫,此時,可以先用 git remote -v 查看遠程庫信息:
git remote -v
origin [email protected]:tianqixin/bjpowernode.git (fetch)
origin [email protected]:tianqixin/bjpowernode.git (push)
可以看到,本地庫已經關聯了 origin 的遠程庫,并且,該遠程庫指向 GitHub。
我們可以刪除已有的 GitHub 遠程庫:
git remote rm origin
再關聯 Gitee 的遠程庫(注意路徑中需要填寫正確的用戶名):
git remote add origin [email protected]:imnoob/bjpowernode-test.git
此時,我們再查看遠程庫信息:
git remote -v
origin [email protected]:imnoob/bjpowernode-test.git (fetch)
origin [email protected]:imnoob/bjpowernode-test.git (push)
現在可以看到,origin 已經被關聯到 Gitee 的遠程庫了。
通過 git push 命令就可以把本地庫推送到 Gitee 上。
有的小伙伴又要問了,一個本地庫能不能既關聯 GitHub,又關聯 Gitee 呢?
答案是肯定的,因為 git 本身是分布式版本控制系統,可以同步到另外一個遠程庫,當然也可以同步到另外兩個遠程庫。
使用多個遠程庫時,我們要注意,git 給遠程庫起的默認名稱是 origin,如果有多個遠程庫,我們需要用不同的名稱來標識不同的遠程庫。
仍然以 bjpowernode-test 本地庫為例,我們先刪除已關聯的名為 origin 的遠程庫:
git remote rm origin
然后,先關聯 GitHub 的遠程庫:
git remote add github [email protected]:tianqixin/bjpowernode-git-test.git
注意,遠程庫的名稱叫 github,不叫 origin 了。
接著,再關聯 Gitee 的遠程庫:
git remote add gitee [email protected]:imnoob/bjpowernode-test.git
同樣注意,遠程庫的名稱叫 gitee,不叫 origin。
現在,我們用 git remote -v 查看遠程庫信息,可以看到兩個遠程庫:
git remote -v
gitee [email protected]:imnoob/bjpowernode-test.git (fetch)
gitee [email protected]:imnoob/bjpowernode-test.git (push)
github [email protected]:tianqixin/bjpowernode.git (fetch)
github [email protected]:tianqixin/bjpowernode.git (push)
如果要推送到 GitHub,使用命令:
git push github master
如果要推送到 Gitee,使用命令:
git push gitee master
這樣一來,我們的本地庫就可以同時與多個遠程庫互相同步: