git的使用學習(七)githup和碼雲的使用

1.使用GitHub

咱們一直用GitHub做爲免費的遠程倉庫,若是是我的的開源項目,放到GitHub上是徹底沒有問題的。其實GitHub仍是一個開源協做社區,經過GitHub,既可讓別人參與你的開源項目,也能夠參與別人的開源項目。git

在GitHub出現之前,開源項目開源容易,但讓廣大人民羣衆參與進來比較困難,由於要參與,就要提交代碼,而給每一個想提交代碼的羣衆都開一個帳號那是不現實的,所以,羣衆也僅限於報個bug,即便能改掉bug,也只能把diff文件用郵件發過去,很不方便。github

可是在GitHub上,利用Git極其強大的克隆和分支功能,廣大人民羣衆真正能夠第一次自由參與各類開源項目了。bootstrap

如何參與一個開源項目呢?好比人氣極高的bootstrap項目,這是一個很是強大的CSS框架,你能夠訪問它的項目主頁https://github.com/twbs/bootstrap,點「Fork」就在本身的帳號下克隆了一個bootstrap倉庫,而後,從本身的帳號下clone:框架

git clone git@github.com:michaelliao/bootstrap.git

必定要從本身的帳號下clone倉庫,這樣你才能推送修改。若是從bootstrap的做者的倉庫地址git@github.com:twbs/bootstrap.git克隆,由於沒有權限,你將不能推送修改。ssh

Bootstrap的官方倉庫twbs/bootstrap、你在GitHub上克隆的倉庫my/bootstrap,以及你本身克隆到本地電腦的倉庫,他們的關係就像下圖顯示的那樣:分佈式

github-repos

若是你想修復bootstrap的一個bug,或者新增一個功能,馬上就能夠開始幹活,幹完後,往本身的倉庫推送。學習

若是你但願bootstrap的官方庫能接受你的修改,你就能夠在GitHub上發起一個pull request。固然,對方是否接受你的pull request就不必定了。fetch

若是你沒能力修改bootstrap,但又想要試一把pull request,那就Fork一下個人倉庫:https://github.com/michaelliao/learngit,建立一個your-github-id.txt的文本文件,寫點本身學習Git的心得,而後推送一個pull request給我,我會視心情而定是否接受。spa

小結版本控制

  • 在GitHub上,能夠任意Fork開源倉庫;

  • 本身擁有Fork後的倉庫的讀寫權限;

  • 能夠推送pull request給官方倉庫來貢獻代碼。

2.使用碼雲

使用GitHub時,國內的用戶常常遇到的問題是訪問速度太慢,有時候還會出現沒法鏈接的狀況(緣由你懂的)。

若是咱們但願體驗Git飛通常的速度,可使用國內的Git託管服務——碼雲gitee.com)。

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

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

使用碼雲和使用GitHub相似,咱們在碼雲上註冊帳號並登陸後,須要先上傳本身的SSH公鑰。選擇右上角用戶頭像 -> 菜單「修改資料」,而後選擇「SSH公鑰」,填寫一個便於識別的標題,而後把用戶主目錄下的.ssh/id_rsa.pub文件的內容粘貼進去:

gitee-add-ssh-key

點擊「肯定」便可完成並看到剛纔添加的Key:

gitee-key

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

首先,咱們在碼雲上建立一個新的項目,選擇右上角用戶頭像 -> 菜單「控制面板」,而後點擊「建立項目」:

gitee-new-repo

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

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

git remote add origin git@gitee.com:liaoxuefeng/learngit.git

以後,就能夠正常地用git pushgit pull推送了!

若是在使用命令git remote add時報錯:

git remote add origin git@gitee.com:liaoxuefeng/learngit.git fatal: remote origin already exists.

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

git remote -v origin git@github.com:michaelliao/learngit.git (fetch) origin git@github.com:michaelliao/learngit.git (push)

能夠看到,本地庫已經關聯了origin的遠程庫,而且,該遠程庫指向GitHub。

咱們能夠刪除已有的GitHub遠程庫:

git remote rm origin

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

git remote add origin git@gitee.com:liaoxuefeng/learngit.git

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

git remote -v origin git@gitee.com:liaoxuefeng/learngit.git (fetch) origin git@gitee.com:liaoxuefeng/learngit.git (push)

如今能夠看到,origin已經被關聯到碼雲的遠程庫了。經過git push命令就能夠把本地庫推送到Gitee上。

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

答案是確定的,由於git自己是分佈式版本控制系統,能夠同步到另一個遠程庫,固然也能夠同步到另外兩個遠程庫。

使用多個遠程庫時,咱們要注意,git給遠程庫起的默認名稱是origin,若是有多個遠程庫,咱們須要用不一樣的名稱來標識不一樣的遠程庫。

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

git remote rm origin

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

git remote add github git@github.com:michaelliao/learngit.git

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

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

git remote add gitee git@gitee.com:liaoxuefeng/learngit.git

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

如今,咱們用git remote -v查看遠程庫信息,能夠看到兩個遠程庫:

git remote -v gitee git@gitee.com:liaoxuefeng/learngit.git (fetch) gitee git@gitee.com:liaoxuefeng/learngit.git (push) github git@github.com:michaelliao/learngit.git (fetch) github git@github.com:michaelliao/learngit.git (push)

若是要推送到GitHub,使用命令:

git push github master

若是要推送到碼雲,使用命令:

git push gitee master

這樣一來,咱們的本地庫就能夠同時與多個遠程庫互相同步:

┌─────────┐ ┌─────────┐ │ GitHub │ │ Gitee │ └─────────┘ └─────────┘ ▲ ▲ └─────┬─────┘ │ ┌─────────────┐ │ Local Repo │ └─────────────┘

碼雲也一樣提供了Pull request功能,可讓其餘小夥伴參與到開源項目中來。你能夠經過Fork個人倉庫:https://gitee.com/liaoxuefeng/learngit,建立一個your-gitee-id.txt的文本文件, 寫點本身學習Git的心得,而後推送一個pull request給我,這個倉庫會在碼雲和GitHub作雙向同步。

相關文章
相關標籤/搜索