我們一直用 GitHub 作為免費(fèi)的遠(yuǎn)程倉(cāng)庫(kù),如果是個(gè)人的開源項(xiàng)目,放到 GitHub 上是完全沒有問題的。其實(shí) GitHub 還是一個(gè)開源協(xié)作社區(qū),通過 GitHub,既可以讓別人參與你的開源項(xiàng)目,也可以參與別人的開源項(xiàng)目。
在 GitHub 出現(xiàn)以前,開源項(xiàng)目開源容易,但讓廣大人民群眾參與進(jìn)來(lái)比較困難,因?yàn)橐獏⑴c,就要提交代碼,而給每個(gè)想提交代碼的群眾都開一個(gè)賬號(hào)那是不現(xiàn)實(shí)的,因此,群眾也僅限于報(bào)個(gè) bug,即使能改掉 bug,也只能把 diff 文件用郵件發(fā)過去,很不方便。
但是在 GitHub 上,利用 Git 極其強(qiáng)大的克隆和分支功能,廣大人民群眾真正可以第一次自由參與各種開源項(xiàng)目了。
如何參與一個(gè)開源項(xiàng)目呢?比如人氣極高的 bootstrap 項(xiàng)目,這是一個(gè)非常強(qiáng)大的 CSS 框架,你可以訪問它的項(xiàng)目主頁(yè)https://github.com/twbs/bootstrap,點(diǎn)“Fork”就在自己的賬號(hào)下克隆了一個(gè) bootstrap 倉(cāng)庫(kù),然后,從自己的賬號(hào)下clone:
git clone git@github.com:michaelliao/bootstrap.git
一定要從自己的賬號(hào)下 clone 倉(cāng)庫(kù),這樣你才能推送修改。如果從 bootstrap 的作者的倉(cāng)庫(kù)地址
git@github.com:twbs/bootstrap.git
克隆,因?yàn)闆]有權(quán)限,你將不能推送修改。
Bootstrap 的官方倉(cāng)庫(kù) twbs/bootstrap、你在 GitHub 上克隆的倉(cāng)庫(kù) my/bootstrap,以及你自己克隆到本地電腦的倉(cāng)庫(kù),他們的關(guān)系就像下圖顯示的那樣:
http://wiki.jikexueyuan.com/project/git-tutorial/images/github.png" alt="" />
如果你想修復(fù) bootstrap 的一個(gè) bug,或者新增一個(gè)功能,立刻就可以開始干活,干完后,往自己的倉(cāng)庫(kù)推送。
如果你希望 bootstrap 的官方庫(kù)能接受你的修改,你就可以在 GitHub 上發(fā)起一個(gè) pull request。當(dāng)然,對(duì)方是否接受你的 pull request 就不一定了。
如果你沒能力修改 bootstrap,但又想要試一把 pull request,那就 Fork 一下我的倉(cāng)庫(kù):https://github.com/michaelliao/learngit,創(chuàng)建一個(gè)your-github-id.txt
的文本文件,寫點(diǎn)自己學(xué)習(xí) Git 的心得,然后推送一個(gè) pull request 給我。
在 GitHub 上,可以任意 Fork 開源倉(cāng)庫(kù);
自己擁有 Fork 后的倉(cāng)庫(kù)的讀寫權(quán)限;