日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

怎样在Github参与一个开源项目

發(fā)布時(shí)間:2025/4/5 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎样在Github参与一个开源项目 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載:http://www.csdn.net/article/2014-04-14/2819293-Contributing-to-Open-Source-on-GitHub

?

最近一年開源項(xiàng)目特別的熱,很多技術(shù)大會(huì)或論壇都以開源項(xiàng)目作為主題進(jìn)行探討,可見這是一種趨勢(shì)。而Github作為開源項(xiàng)目的著名托管地,可謂無(wú)人不知,越來(lái)越多的個(gè)人和公司紛紛加入到Github的大家族里來(lái),為開源盡一份綿薄之力。對(duì)于個(gè)人來(lái)講,你把自己的項(xiàng)目托管到Github上并不表示你參與了Github開源項(xiàng)目,只能說(shuō)你開源了自己的項(xiàng)目,可以任別人自由下載。

那么該如何參與Github的開源項(xiàng)目呢?相信很多人都有這方面的疑問(wèn),網(wǎng)上也有一些參差不齊的教程教大家如何“Pull Request”、如何“Commit”等等。但這些教程往往不夠全面或不夠完全正確,搞不好可能讓你陷入一個(gè)誤區(qū)。鑒于此,前幾天Github官方團(tuán)隊(duì)寫了一篇很棒的文章?Contributing to Open Source on GitHub,專業(yè)指導(dǎo)大家如何參與Github的開源項(xiàng)目。?下面是?原文的翻譯。


參與開源項(xiàng)目的最佳辦法就是加入到你正在使用的已有項(xiàng)目上來(lái)。Github上有500多萬(wàn)開源項(xiàng)目,涉及到各個(gè)領(lǐng)域的技術(shù),像?recipes,?HTML/CSS,?Ruby,?Astrophysics等等。該指南將涵蓋你在一個(gè)典型的項(xiàng)目中可能出現(xiàn)的事情以及如何為開源項(xiàng)目作出貢獻(xiàn)。

?

找項(xiàng)目

我們推薦你從已正在使用的或感興趣的項(xiàng)目開始。這里有幾個(gè)很棒的地方供你參考:

?

?

  • GitHub Explore:受歡迎和熱門的項(xiàng)目。?
  • GitHub Stars:被其他人star過(guò)的項(xiàng)目(指的是你自己庫(kù)的項(xiàng)目)。?
  • GitHub Showcases:一個(gè)能搜索相關(guān)庫(kù)的方法。?
  • LayerVault News:前端和設(shè)計(jì)相關(guān)的項(xiàng)目。?

?

?

一個(gè)典型的項(xiàng)目

下面是一些你在Github開源項(xiàng)目中可能遇到的因素。

?

The Community(社區(qū))

?

項(xiàng)目通常會(huì)有一個(gè)社區(qū)維護(hù),由不同角色(正規(guī)或非正規(guī))的其他用戶組成:

?

  • 所有者(Owner):即創(chuàng)建該項(xiàng)目且在他們Github賬戶上有該項(xiàng)目的用戶或組織。?
  • 維護(hù)者和協(xié)作者(Maintainers and Collaborators): 致力于一個(gè)項(xiàng)目并促進(jìn)該項(xiàng)目發(fā)展的用戶。通常所有者和維護(hù)者是同一個(gè)用戶或組織,他們對(duì)項(xiàng)目庫(kù)都有寫的權(quán)限。?
  • 貢獻(xiàn)者(Contributors):每一個(gè)對(duì)該項(xiàng)目發(fā)出過(guò)pull?request并合并到項(xiàng)目中的用戶都是貢獻(xiàn)者。
  • 社區(qū)成員(Community Members):即那些經(jīng)常使用且非常關(guān)心該項(xiàng)目的用戶,他們?cè)谟懻摴δ芴卣骱蚿ull?request上非常活躍。

?

The Docs(文檔)

一般項(xiàng)目中都有的文件。

?

?

  • Readme:幾乎所有的Github項(xiàng)目都包含一個(gè)README.md文件。readme提供了該項(xiàng)目的一個(gè)概覽及關(guān)于如何使用、構(gòu)建甚至如何貢獻(xiàn)于一個(gè)項(xiàng)目的相關(guān)細(xì)節(jié)。
  • Contributing:項(xiàng)目和項(xiàng)目維護(hù)者不同,所以每個(gè)項(xiàng)目所期望的作貢獻(xiàn)的最佳方法也會(huì)有所不同。一定要注意一個(gè)標(biāo)注為CONTRIBUTING的文檔,Contributing文檔詳細(xì)描述了一個(gè)項(xiàng)目的維護(hù)者希望看到貢獻(xiàn)的補(bǔ)丁或功能應(yīng)該符合怎樣的規(guī)格。這可能包含要寫什么測(cè)試,代碼語(yǔ)法規(guī)范或補(bǔ)丁集中的區(qū)域。
  • License:一個(gè)LICENSE文件當(dāng)然就是該項(xiàng)目的許可證了。一個(gè)開源項(xiàng)目的license會(huì)告訴用戶他們能做和不能做的(例如使用、修改、重新發(fā)布),及告訴貢獻(xiàn)者他們?cè)试S其他人做的。有許多的辦法對(duì)開源項(xiàng)目加上許可證,你可以在?choosealicense.com讀到更多的關(guān)于每個(gè)許可證的含義。
  • Documentation and Wikis:許多大型項(xiàng)目有的不只有一個(gè)readme來(lái)指導(dǎo)人么如何使用他們的項(xiàng)目。在這種情況下你通常能夠發(fā)現(xiàn)一個(gè)指向庫(kù)中名為“docs”的另一個(gè)文件或文件夾的鏈接。

?

另外,該庫(kù)也可能使用Github?wiki來(lái)代替文檔。?

?

?

貢獻(xiàn)于一個(gè)項(xiàng)目

既然你已經(jīng)找到了理解該項(xiàng)目的相關(guān)資料,下面你就可以采取一些行動(dòng)了。

建立一個(gè)話題

如果你發(fā)現(xiàn)了你正在使用的項(xiàng)目中的一個(gè)bug(但是你不知道怎么去修復(fù)它),或?qū)ξ臋n有不解或?qū)?xiàng)目有疑問(wèn) —?那么創(chuàng)建一個(gè)話題吧!這非常容易且一般你不管創(chuàng)建什么話題,你都可能不是唯一一個(gè)出現(xiàn)該問(wèn)題的人,所以其他人可能會(huì)發(fā)現(xiàn)你的話題很有幫助。關(guān)于更多的話題介紹,請(qǐng)查看我們的Issues guide。

話題專業(yè)提示

  • 在建話題之前檢查已有的話題:話題重復(fù)對(duì)雙方都無(wú)利,所以搜索整個(gè)正開放和已關(guān)閉的話題以檢查你遇到的問(wèn)題是否已經(jīng)有人解決了。?
  • 務(wù)必對(duì)自己的問(wèn)題有清晰的認(rèn)識(shí):期望的結(jié)果是什么?然而卻發(fā)生了什么??詳細(xì)描述其他人如何重現(xiàn)該問(wèn)題。
  • 在像?JSFiddle或?CodePen類似的平臺(tái)上重現(xiàn)該問(wèn)題并給出問(wèn)題demo的鏈接。?
  • 包含一些系統(tǒng)相關(guān)的細(xì)節(jié),比如用的什么瀏覽器、庫(kù)或操作系統(tǒng)及版本號(hào)。?
  • 在你的話題或在?Gist里貼出你的錯(cuò)誤輸出或日志。如果在話題里貼出來(lái),請(qǐng)用三個(gè)反引號(hào)```?包圍起來(lái)使得能夠良好的呈現(xiàn)給大家。

?

Pull Request

如果你能夠修復(fù)bug或自己添加功能 —?太棒了,請(qǐng)發(fā)一個(gè)pull?request吧!確保你已經(jīng)讀過(guò)任何關(guān)于contributing的文檔,且需要理解license以及已經(jīng)簽過(guò)CLA(如果需要的話)。一旦你提交了一個(gè)pull?request,維護(hù)者就會(huì)將你的分支與已有的分支作比較來(lái)決定是否要合并(即pull?in)你作的改動(dòng)。

Pull Request專業(yè)提示

  • Fork?該項(xiàng)目庫(kù)及將它c(diǎn)lone到本地。通過(guò)添加為遠(yuǎn)程的方式在本地連接到原來(lái)的‘upstream’庫(kù)。經(jīng)常從‘upstream’庫(kù)pull in改動(dòng)以保持庫(kù)最新,這樣當(dāng)你提交pull?request時(shí),就不大可能發(fā)生合并沖突了。點(diǎn)?這里看更多的指導(dǎo)細(xì)節(jié)。?
  • 為你的編輯單獨(dú)建立一個(gè)分支?。
  • 務(wù)必清楚所出現(xiàn)的問(wèn)題以及如何重現(xiàn)該問(wèn)題或?yàn)槭裁茨愕墓δ苡袔椭H缓笸瑯拥囊宄鲆恍└淖冇心男┎襟E。?
  • 最好測(cè)試一下。在任何已有的測(cè)試(如果存在)上運(yùn)行你所做的改動(dòng)并在必要時(shí)創(chuàng)建新的測(cè)試。不管測(cè)試存不存在,都要確保你的改動(dòng)不會(huì)破壞已有的項(xiàng)目。?
  • 如果你的改動(dòng)包含了HTML/CSS方面的不同,那么請(qǐng)包含改動(dòng)前和改動(dòng)后的截圖。將你的圖片拖放到你pull?request的正文里。?
  • 盡你所能的在項(xiàng)目的風(fēng)格上多做努力。這可能意味著使用不同于你自己Github庫(kù)中采用的縮進(jìn),分號(hào)或注釋,但是這讓維護(hù)者更容易合并,也讓其他人更容易理解和以后的維護(hù)。

?

?

開放的Pull Requests

一旦你打開一個(gè)pull?request,就會(huì)有一個(gè)討論,圍繞你提出的改變作出探討。其他的貢獻(xiàn)者和用戶可能會(huì)參與進(jìn)來(lái),但最終由維護(hù)者做決定。你可能會(huì)被要求對(duì)你的pull?request做一些改變,如果這樣,請(qǐng)給你的分支添加更多的commit并push它們 —?它們將自動(dòng)的加入到已有的pull?request里。

?

?

如果你的pull?request被合并了——太好了!如果沒被合并的話,也沒什么大不了的,也許這不是項(xiàng)目維護(hù)者所期望看到的改動(dòng),亦或者他們已經(jīng)致力于該bug或功能。這種情況有可能發(fā)生,所以我們的建議是:對(duì)收到的結(jié)果做出反饋,進(jìn)一步努力然后再次pull?request出去—?或者創(chuàng)建你自己的開源項(xiàng)目。

總結(jié)

以上是生活随笔為你收集整理的怎样在Github参与一个开源项目的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。