1. 程式人生 > >Git(使用碼雲)

Git(使用碼雲)

問題 rem 多個 正常 推送 兩個 mic tro 原因

使用GitHub時,國內的用戶經常遇到的問題是訪問速度太慢,有時候還會出現無法連接的情況(原因你懂的)。

如果我們希望體驗Git飛一般的速度,可以使用國內的Git托管服務——碼雲(gitee.com)。

和GitHub相比,碼雲也提供免費的Git倉庫。此外,還集成了代碼質量檢測、項目演示等功能。對於團隊協作開發,碼雲還提供了項目管理、代碼托管、文檔管理的服務,5人以下小團隊免費。

碼雲的免費版本也提供私有庫功能,只是有5人的成員上限。

使用碼雲和使用GitHub類似,我們在碼雲上註冊賬號並登錄後,需要先上傳自己的SSH公鑰。選擇右上角用戶頭像 -> 菜單“修改資料”,然後選擇“SSH公鑰”,填寫一個便於識別的標題,然後把用戶主目錄下的.ssh/id_rsa.pub

文件的內容粘貼進去:

技術分享圖片

生成公鑰方法:https://blog.csdn.net/lsyz0021/article/details/52064829

點擊“確定”即可完成並看到剛才添加的Key。

如果我們已經有了一個本地的git倉庫(例如,一個名為learngit的本地庫),如何把它關聯到碼雲的遠程庫上呢?

首先,我們在碼雲上創建一個新的項目,選擇右上角用戶頭像 -> 菜單“控制面板”,然後點擊“創建項目”:

技術分享圖片

項目名稱最好與本地庫保持一致:

然後,我們在本地庫上使用命令git remote add把它和碼雲的遠程庫關聯:

技術分享圖片

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

如果在使用命令git remote add

時報錯:

git remote add origin [email protected]:liaoxuefeng/learngit.git
fatal: remote origin already exists.

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

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

可以看到,本地庫已經關聯了origin

的遠程庫,並且,該遠程庫指向GitHub。

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

git remote rm origin

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

git remote add origin [email protected]:liaoxuefeng/learngit.git

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

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

現在可以看到,origin已經被關聯到碼雲的遠程庫了。通過git push命令就可以把本地庫推送到Gitee上。

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

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

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

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

git remote rm origin

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

git remote add github [email protected]:michaelliao/learngit.git

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

接著,再關聯碼雲的遠程庫:

git remote add gitee [email protected]:liaoxuefeng/learngit.git

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

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

git remote -v
gitee    [email protected]:liaoxuefeng/learngit.git (fetch)
gitee    [email protected]:liaoxuefeng/learngit.git (push)
github    [email protected]:michaelliao/learngit.git (fetch)
github    [email protected]:michaelliao/learngit.git (push)

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

git push github master

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

git push Shopping_mall gitee master

如果要強制推送,在後面加上 -f 參數。

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

技術分享圖片

Git(使用碼雲)