大家都知道國(guó)內(nèi)訪問(wèn) Github 速度比較慢,很影響我們的使用。
如果你希望體驗(yàn)到 Git 飛一般的速度,可以使用國(guó)內(nèi)的 Git 托管服務(wù)——Gitee(gitee.com)。
Gitee 提供免費(fèi)的 Git 倉(cāng)庫(kù),還集成了代碼質(zhì)量檢測(cè)、項(xiàng)目演示等功能。對(duì)于團(tuán)隊(duì)協(xié)作開(kāi)發(fā),Gitee 還提供了項(xiàng)目管理、代碼托管、文檔管理的服務(wù),5 人以下小團(tuán)隊(duì)免費(fèi)。
接下來(lái)我們學(xué)習(xí)一下如何使用 Gitee。
由于我們的本地 Git 倉(cāng)庫(kù)和 Gitee 倉(cāng)庫(kù)之間的傳輸是通過(guò)SSH加密的,所以我們需要配置驗(yàn)證信息。
我們?cè)?Git Github 章節(jié)已經(jīng)生成了自己的 SSH 公鑰,所以我們只需要將用戶主目錄下的 ~/.ssh/id_rsa.pub 文件的內(nèi)容粘貼 Gitee 上。
選擇右上角用戶頭像 -> 設(shè)置,然后選擇 "SSH公鑰",填寫(xiě)一個(gè)便于識(shí)別的標(biāo)題,然后把用戶主目錄下的 .ssh/id_rsa.pub 文件的內(nèi)容粘貼進(jìn)去:

成功添加后如下圖所示:

接下來(lái)我們創(chuàng)建一個(gè)項(xiàng)目。
點(diǎn)擊右上角的 + 號(hào),新建倉(cāng)庫(kù):

然后添加倉(cāng)庫(kù)信息:

創(chuàng)建成功后看到如下信息:

接下來(lái)我們看下連接信息:

項(xiàng)目名稱最好與本地庫(kù)保持一致。
然后,我們?cè)诒镜貛?kù)上使用命令 git remote add 把它和 Gitee 的遠(yuǎn)程庫(kù)關(guān)聯(lián):
git remote add origin git@gitee.com:imnoob/bjpowernode-test.git
之后,就可以正常地用 git push 和 git pull 推送了!
如果在使用命令 git remote add 時(shí)報(bào)錯(cuò):
git remote add origin git@gitee.com:imnoob/bjpowernode-test.git
fatal: remote origin already exists.
這說(shuō)明本地庫(kù)已經(jīng)關(guān)聯(lián)了一個(gè)名叫 origin 的遠(yuǎn)程庫(kù),此時(shí),可以先用 git remote -v 查看遠(yuǎn)程庫(kù)信息:
git remote -v
origin git@github.com:tianqixin/bjpowernode.git (fetch)
origin git@github.com:tianqixin/bjpowernode.git (push)
可以看到,本地庫(kù)已經(jīng)關(guān)聯(lián)了 origin 的遠(yuǎn)程庫(kù),并且,該遠(yuǎn)程庫(kù)指向 GitHub。
我們可以刪除已有的 GitHub 遠(yuǎn)程庫(kù):
git remote rm origin
再關(guān)聯(lián) Gitee 的遠(yuǎn)程庫(kù)(注意路徑中需要填寫(xiě)正確的用戶名):
git remote add origin git@gitee.com:imnoob/bjpowernode-test.git
此時(shí),我們?cè)俨榭催h(yuǎn)程庫(kù)信息:
git remote -v
origin git@gitee.com:imnoob/bjpowernode-test.git (fetch)
origin git@gitee.com:imnoob/bjpowernode-test.git (push)
現(xiàn)在可以看到,origin 已經(jīng)被關(guān)聯(lián)到 Gitee 的遠(yuǎn)程庫(kù)了。
通過(guò) git push 命令就可以把本地庫(kù)推送到 Gitee 上。
有的小伙伴又要問(wèn)了,一個(gè)本地庫(kù)能不能既關(guān)聯(lián) GitHub,又關(guān)聯(lián) Gitee 呢?
答案是肯定的,因?yàn)?git 本身是分布式版本控制系統(tǒng),可以同步到另外一個(gè)遠(yuǎn)程庫(kù),當(dāng)然也可以同步到另外兩個(gè)遠(yuǎn)程庫(kù)。
使用多個(gè)遠(yuǎn)程庫(kù)時(shí),我們要注意,git 給遠(yuǎn)程庫(kù)起的默認(rèn)名稱是 origin,如果有多個(gè)遠(yuǎn)程庫(kù),我們需要用不同的名稱來(lái)標(biāo)識(shí)不同的遠(yuǎn)程庫(kù)。
仍然以 bjpowernode-test 本地庫(kù)為例,我們先刪除已關(guān)聯(lián)的名為 origin 的遠(yuǎn)程庫(kù):
git remote rm origin
然后,先關(guān)聯(lián) GitHub 的遠(yuǎn)程庫(kù):
git remote add github git@github.com:tianqixin/bjpowernode-git-test.git
注意,遠(yuǎn)程庫(kù)的名稱叫 github,不叫 origin 了。
接著,再關(guān)聯(lián) Gitee 的遠(yuǎn)程庫(kù):
git remote add gitee git@gitee.com:imnoob/bjpowernode-test.git
同樣注意,遠(yuǎn)程庫(kù)的名稱叫 gitee,不叫 origin。
現(xiàn)在,我們用 git remote -v 查看遠(yuǎn)程庫(kù)信息,可以看到兩個(gè)遠(yuǎn)程庫(kù):
git remote -v
gitee git@gitee.com:imnoob/bjpowernode-test.git (fetch)
gitee git@gitee.com:imnoob/bjpowernode-test.git (push)
github git@github.com:tianqixin/bjpowernode.git (fetch)
github git@github.com:tianqixin/bjpowernode.git (push)
如果要推送到 GitHub,使用命令:
git push github master
如果要推送到 Gitee,使用命令:
git push gitee master
這樣一來(lái),我們的本地庫(kù)就可以同時(shí)與多個(gè)遠(yuǎn)程庫(kù)互相同步:
