最近一年開源項目特別的熱,不少技術大會或論壇都以開源項目做爲主題進行探討,可見這是一種趨勢。而Github做爲開源項目的著名託管地,可謂無 人不知,愈來愈多的我的和公司紛紛加入到Github的你們族裏來,爲開源盡一份綿薄之力。對於我的來說,你把本身的項目託管到Github上並不表示你 參與了Github開源項目,只能說你開源了本身的項目,能夠任別人自由下載。那麼該如何參與Github的開源項目呢?相信不少人都有這方面的疑問,網 上也有一些良莠不齊的教程教你們如何「pull request」、如何「commit」等等。但這些教程每每不夠全面或不夠徹底正確,搞很差可能讓你陷 入一個誤區。鑑於此,前幾天Github官方團隊寫了一篇很棒的文章Contributing to Open Source on GitHub,專業指導你們如何參與Github的開源項目。做爲Github的入門級粉絲,將這篇教程翻譯出來,供那些對開源項目剛興趣的人蔘考借鑑。前端
下面是正文。個人Github地址:https://github.com/lanxuezaipiao,有本身的項目也有fork的很是優秀的編程資料、編程筆記和計算機優秀論文資料,有興趣的能夠follow下。
git
參與開源項目的最佳辦法就是加入到你正在使用的已有項目上來。Github上有500多萬開源項目,涉及到各個領域的技術,像recipes,HTML/CSS,Ruby, Astrophysics等等。該指南將涵蓋你在一個典型的項目中可能出現的事情以及如何爲開源項目做出貢獻。github
咱們推薦你從已正在使用的或感興趣的項目開始。這裏有幾個很棒的地方供你參考:編程
下面是一些你在Github開源項目中可能遇到的因素。瀏覽器
項目一般會有一個社區維護,由不一樣角色(正規或非正規)的其餘用戶組成:ide
通常項目中都有的文件。測試
幾乎全部的Github項目都包含一個
文件。readme提供了該項目的一個概覽及關於如何使用、構建甚至如何貢獻於一個項目的相關細節。uiREADME.md
項目和項目維護者不一樣,因此每一個項目所指望的做貢獻的最佳方法也會有所不一樣。必定要注意一個標註爲
的文檔,Contributing文檔詳細描述了一個項目的維護者但願看到貢獻的補丁或功能應該符合怎樣的規格。這可能包含要寫什麼測試,代碼語法規範或補丁集中的區域。操作系統CONTRIBUTING
一個
文件固然就是該項目的許可證了。一個開源項目的license會告訴用戶他們能作和不能作的(例如使用、修改、從新發布),及告訴貢獻者他們容許其餘人作的。有許多的辦法對開源項目加上許可證,你能夠在choosealicense.com讀到更多的關於每一個許可證的含義。.netLICENSE
許多大型項目有的不僅有一個readme來指導人麼如何使用他們的項目。在這種狀況下你一般可以發現一個指向庫中名爲「docs」的另外一個文件或文件夾的連接。
另外,該庫也可能使用Github wiki來代替文檔。
既然你已經找到了理解該項目的相關資料,下面你就能夠採起一些行動了。
若是你發現了你正在使用的項目中的一個bug(可是你不知道怎麼去修復它),或對文檔有不解或對項目有疑問 — 那麼建立一個話題吧!這很是容易且通常你無論建立什麼話題,你均可能不是惟一一個出現該問題的人,因此其餘人可能會發現你的話題頗有幫助。關於更多的 話題介紹,請查看咱們的Issues guide。
```
包圍起來使得可以良好的呈現給你們。
若是你可以修復bug或本身添加功能 — 太棒了,請發一個pull request 吧!確保你已經讀過任何關於contributing的文檔,且須要理解license以及已經簽過CLA(若是須要的話)。一旦你提交了一個 pull request,維護者就會將你的分支與已有的分支做比較來決定是否要合併(即pull in)你做的改動。
一旦你打開一個pull request,就會有一個討論,圍繞你提出的改變做出探討。其餘的貢獻者和用戶可能會參與進來,但最終由維護者作決定。你可能 會被要求對你的pull request作一些改變,若是這樣,請給你的分支添加更多的commit並push它們 — 它們將自動的加入到已有的pull request裏。
若是你的pull request被合併了 — 太好了!若是沒被合併的話,也沒什麼大不了的,也許這不是項目維護者所指望看到的改動,亦或者他們已經致力於該bug或功能。這種狀況有可能發生,所 以咱們的建議是:對收到的結果作出反饋,進一步努力而後再次pull request出去— 或者建立你本身的開源項目。
若是你跟我同樣是開源的支持者,請點擊下面的推薦按鈕 (*^__^*)