Git Gitee

大家都知道國內訪問 Github 速度比較慢,很影響我們的使用。

如果你希望體驗到 Git 飛一般的速度,可以使用國內的 Git 託管服務——Gitee(gitee.com)。

Gitee 提供免費的 Git 倉庫,還集成了程式碼質量檢測、專案演示等功能。對於團隊協作開發,Gitee 還提供了專案管理、程式碼託管、文件管理的服務,5 人以下小團隊免費。

接下來我們學習一下如何使用 Gitee。

由於我們的本地 Git 倉庫和 Gitee 倉庫之間的傳輸是通過SSH加密的,所以我們需要配置驗證資訊。

1、我們先在 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/itread01-test.git

之後,就可以正常地用 git push 和 git pull 推送了!

如果在使用命令 git remote add 時報錯:

git remote add origin [email protected]:imnoob/itread01-test.git
fatal: remote origin already exists.

這說明本地庫已經關聯了一個名叫 origin 的遠端庫,此時,可以先用 git remote -v 檢視遠端庫資訊:

git remote -v
origin    [email protected]:tianqixin/itread01.git (fetch)
origin    [email protected]:tianqixin/itread01.git (push)

可以看到,本地庫已經關聯了 origin 的遠端庫,並且,該遠端庫指向 GitHub。

我們可以刪除已有的 GitHub 遠端庫:

git remote rm origin

再關聯 Gitee 的遠端庫(注意路徑中需要填寫正確的使用者名稱):

git remote add origin [email protected]:imnoob/itread01-test.git

此時,我們再檢視遠端庫資訊:

git remote -v
origin    [email protected]:imnoob/itread01-test.git (fetch)
origin    [email protected]:imnoob/itread01-test.git (push)

現在可以看到,origin 已經被關聯到 Gitee 的遠端庫了。

通過 git push 命令就可以把本地庫推送到 Gitee 上。

有的小夥伴又要問了,一個本地庫能不能既關聯 GitHub,又關聯 Gitee 呢?

答案是肯定的,因為 git 本身是分散式版本控制系統,可以同步到另外一個遠端庫,當然也可以同步到另外兩個遠端庫。

使用多個遠端庫時,我們要注意,git 給遠端庫起的預設名稱是 origin,如果有多個遠端庫,我們需要用不同的名稱來標識不同的遠端庫。

仍然以 itread01-test 本地庫為例,我們先刪除已關聯的名為 origin 的遠端庫:

git remote rm origin

然後,先關聯 GitHub 的遠端庫:

git remote add github [email protected]:tianqixin/itread01-git-test.git

注意,遠端庫的名稱叫 github,不叫 origin 了。

接著,再關聯 Gitee 的遠端庫:

git remote add gitee [email protected]:imnoob/itread01-test.git

同樣注意,遠端庫的名稱叫 gitee,不叫 origin。

現在,我們用 git remote -v 檢視遠端庫資訊,可以看到兩個遠端庫:

git remote -v
gitee    [email protected]:imnoob/itread01-test.git (fetch)
gitee    [email protected]:imnoob/itread01-test.git (push)
github    [email protected]:tianqixin/itread01.git (fetch)
github    [email protected]:tianqixin/itread01.git (push)

如果要推送到 GitHub,使用命令:

git push github master

如果要推送到 Gitee,使用命令:

git push gitee master

這樣一來,我們的本地庫就可以同時與多個遠端庫互相同步: