我們一直用GitHub作爲免費的遠程倉庫,如果是個人的開源項目,放到GitHub上是完全沒有問題的。其實GitHub還是一個開源協作社區,通過GitHub,既可以讓別人參與你的開源項目,也可以參與別人的開源項目。
在GitHub出現以前,開源項目開源容易,但讓廣大人民羣衆參與進來比較困難,因爲要參與,就要提交代碼,而給每個想提交代碼的羣衆都開一個賬號那是不現實的,因此,羣衆也僅限於報個bug,即使能改掉bug,也只能把diff文件用郵件發過去,很不方便。
但是在GitHub上,利用Git極其強大的克隆和分支功能,人們羣衆真正可以第一次自由參與各種開源項目了。
如何參與一個開源項目呢?比如人氣極高的bootstrap項目,這是一個非常強大的CSS框架,你可以訪問它的項目主頁https://github.com/twbs/bootstrap,點“Fork”就在自己的賬號下克隆了一個bootstrap倉庫,然後,從自己的賬號下clone:
git clone [email protected]:michaelliao/bootstrap.git
一定要從自己的賬號下clone倉庫,這樣你才能推送修改。如果從bootstrap的作者的倉庫地址[email protected]:twbs/bootstrap.git
克隆,因爲沒有權限,你將不能推送修改。
Bootstrap的官方倉庫twbs/bootstrap
、你在GitHub上克隆的倉庫my/bootstrap
,以及你自己克隆到本地電腦的倉庫,他們的關係就像下圖顯示的那樣:
如果你想修復bootstrap的一個bug,或者新增一個功能,立刻就可以開始幹活,幹完後,往自己的倉庫推送。
如果你希望bootstrap的官方庫能接受你的修改,你就可以在GitHub上發起一個pull request。當然,對方是否接受你的pull request就不一定了。
如果你沒能力修改bootstrap,但又想要試一把pull request,那就Fork一下我的倉庫:https://github.com/michaelliao/learngit,創建一個your-github-id.txt
的文本文件,寫點自己學習Git的心得,然後推送一個pull
request給我,我會視心情而定是否接受。
小結
-
在GitHub上,可以任意Fork開源倉庫;
-
自己擁有Fork後的倉庫的讀寫權限;
-
可以推送pull request給官方倉庫來貢獻代碼。