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 git@gitee.com:imnoob/runoob-test.git

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

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

git remote add origin git@gitee.com:imnoob/runoob-test.git
fatal: remote origin already exists.

這說明本地庫已經關聯了一個名叫 origin 的遠程庫,此時,可以先用 git remote -v 查看遠程庫信息:

git remote -v
origin    git@github.com:tianqixin/runoob.git (fetch)
origin    git@github.com:tianqixin/runoob.git (push)

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

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

git remote rm origin

再關聯 Gitee 的遠程庫(注意路徑中需要填寫正確的用戶名):

git remote add origin git@gitee.com:imnoob/runoob-test.git

此時,我們再查看遠程庫信息:

git remote -v
origin    git@gitee.com:imnoob/runoob-test.git (fetch)
origin    git@gitee.com:imnoob/runoob-test.git (push)

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

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

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

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

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

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

git remote rm origin

然后,先關聯 GitHub 的遠程庫:

git remote add github git@github.com:tianqixin/runoob-git-test.git

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

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

git remote add gitee git@gitee.com:imnoob/runoob-test.git

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

現在,我們用 git remote -v 查看遠程庫信息,可以看到兩個遠程庫:

git remote -v
gitee    git@gitee.com:imnoob/runoob-test.git (fetch)
gitee    git@gitee.com:imnoob/runoob-test.git (push)
github    git@github.com:tianqixin/runoob.git (fetch)
github    git@github.com:tianqixin/runoob.git (push)

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

git push github master

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

git push gitee master

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