1024程序員節(jié),首先向改變世界的程序員致敬!真心祝愿天下的程序員:碼無(wú)Bug,少加班,邂逅真愛(ài),多加薪。用技術(shù)改變世界的你們,值得更多的美好!
RT-Thread作為一款自主物聯(lián)網(wǎng)操作系統(tǒng),通過(guò)開(kāi)源社區(qū)的方式開(kāi)發(fā),截止目前已有多達(dá)上百位程序員在Github上為RT-Thread貢獻(xiàn)代碼,當(dāng)然還有很多沒(méi)有在Github上提交代碼的貢獻(xiàn)者,真誠(chéng)地感謝您們對(duì)RT-Thread付出的心血!
支持RT-Thread的粉絲們請(qǐng)給RT-Thread項(xiàng)目主倉(cāng)點(diǎn)星星:https://github.com/RT-Thread/rt-thread,以鼓勵(lì)RT-Thread的開(kāi)發(fā)者們,也希望有越來(lái)越多的RT-Thread貢獻(xiàn)者,為RT-Thread貢獻(xiàn)更多的代碼!
↓↓↓
如果您愿意給RT-Thread貢獻(xiàn)代碼,歡迎通過(guò) GitHub 的 fork 和 pull request 流程來(lái)提交代碼。 代碼要求請(qǐng)參考rt_thread項(xiàng)目documentation目錄下coding_style_cn.txt文件(https://github.com/RT-Thread/rt-thread/blob/master/documentation/coding_style_cn.txt)。
以下教程將指導(dǎo)您如何提交代碼,以及如何提交代碼才會(huì)被RT-Thread官方認(rèn)可。。
首先解釋一下pull request這個(gè)詞,pull request的意思是推送請(qǐng)求,開(kāi)發(fā)者發(fā)起pull request 的目的是請(qǐng)求倉(cāng)庫(kù)維護(hù)人采用開(kāi)發(fā)者提交的代碼。下面是摘自知乎 網(wǎng)友的一段解釋?zhuān)?/p>
我嘗試用類(lèi)比的方法來(lái)解釋一下pull reqeust。想想我們中學(xué)考試,老師改卷的場(chǎng)景吧。你做的試卷就像倉(cāng)庫(kù),你的試卷肯定會(huì)有很多錯(cuò)誤,就相當(dāng)于程序里的bug。老師把你的試卷拿過(guò)來(lái),相當(dāng)于先f(wàn)ork。在你的卷子上做一些修改批注,相當(dāng)于git commit。最后把改好的試卷給你,相當(dāng)于發(fā)pull request,你拿到試卷重新改正錯(cuò)誤,相當(dāng)于merge。
當(dāng)你想更正別人倉(cāng)庫(kù)里的錯(cuò)誤時(shí),要按照下面的流程進(jìn)行:
先 fork 別人的倉(cāng)庫(kù),相當(dāng)于拷貝一份別人的資料。因?yàn)椴荒鼙WC你的修改一定是正確的,對(duì)項(xiàng)目有利的,所以你不能直接在別人的倉(cāng)庫(kù)里修改,而是要先f(wàn)ork到自己的git倉(cāng)庫(kù)中。
clone到自己的本地分支,做一些bug fix,然后發(fā)起pull request給原倉(cāng)庫(kù),讓原倉(cāng)庫(kù)的管理者看到你提交的修改。
原倉(cāng)庫(kù)的管理者review這個(gè)bug,如果是正確的話,就會(huì)merge到他自己的項(xiàng)目中。merge的意思就是合并,將你修改的這部分代碼合并到原來(lái)的倉(cāng)庫(kù)中添加代碼或者替換掉原來(lái)的代碼。至此,整個(gè) pull request 的過(guò)程就結(jié)束了,原來(lái)倉(cāng)庫(kù)中就有了你貢獻(xiàn)的代碼啦。
現(xiàn)在以rt-thread倉(cāng)庫(kù)為例說(shuō)明貢獻(xiàn)代碼的流程:
1. fork將rt-thread倉(cāng)庫(kù)fork到自己的git倉(cāng)庫(kù)中。
2. 克隆(clone)
將rt-thread倉(cāng)庫(kù)clone到自己的本地PC。
3. 創(chuàng)建本地分支如果想要在rtt項(xiàng)目上做自己的開(kāi)發(fā),最好創(chuàng)建屬于自己的項(xiàng)目分支,如果是直接對(duì)rtt貢獻(xiàn)代碼,那么可以直接在master分支上進(jìn)行操作。
4. 開(kāi)發(fā)
發(fā)現(xiàn)了一個(gè)小bug并進(jìn)行修改。
5. 提交(commit)向本地倉(cāng)庫(kù)提交bug
6. 保持本地倉(cāng)庫(kù)最新
在準(zhǔn)備發(fā)起 Pull Request 之前,需要同步原倉(cāng)庫(kù)最新的代碼,記得檢查目前的項(xiàng)目是否是最新的版本。
7. Push 到遠(yuǎn)程倉(cāng)庫(kù)push到開(kāi)發(fā)者自己的遠(yuǎn)程倉(cāng)庫(kù)中。
8. 發(fā)起并完成 Pull Request
在git倉(cāng)庫(kù)中選擇自己修改了的分支,點(diǎn)擊create pull request按鈕發(fā)起pull request.
9. 提交代碼的一些約定
發(fā)起請(qǐng)求成功后,RT-Thread維護(hù)人就可以看到你提交的代碼。pull request如果被同意,你的代碼就會(huì)被合并到倉(cāng)庫(kù)中。
關(guān)于如何有效提交補(bǔ)丁,可以考慮遵循以下的一些事項(xiàng):
自己的代碼嚴(yán)格遵守RT-Thread的代碼規(guī)范;RT-Thread是一個(gè)干凈,清晰的系統(tǒng),代碼是給人看的(機(jī)器碼才是給機(jī)器看的),所以如何寫(xiě)一份清晰、整潔的代碼也是一門(mén)學(xué)問(wèn)。相信能夠合并一個(gè)PR,也是對(duì)你代碼的提高;
BSP的代碼,請(qǐng)盡量確保代碼改動(dòng)僅限制于BSP中,而不影響到其他代碼。一上來(lái)不管三七二十,大幅修改,而不考慮其他代碼(內(nèi)核、組件)的感受,被拒絕拒掉,妥妥的!
修改組件的代碼也請(qǐng)盡量限制于本組件以內(nèi),天馬行空會(huì)被禁空,沒(méi)商量的;
提交時(shí),更改說(shuō)明的message,最好把相關(guān)的緣由寫(xiě)出,并在message標(biāo)題上增加[BSP]/[組件名]等等的標(biāo)識(shí)。
提交PR后,也多看看一些反饋,這其中可能就包括維護(hù)人對(duì)代碼的review給出的整改意見(jiàn),PR掛著不理會(huì)反饋,時(shí)間長(zhǎng)了,也會(huì)被拒的。
總而言之,提交代碼,發(fā)PR,是讓RT-Thread更棒!也是讓自己的人生有不一樣的色彩!
至此,我們就完成了一次代碼貢獻(xiàn)的過(guò)程。
恭喜,你就成為一個(gè)RT-Thread 的貢獻(xiàn)者了。請(qǐng)繼續(xù)提交代碼!
-
RT-Thread
+關(guān)注
關(guān)注
31文章
1285瀏覽量
40089 -
GitHub
+關(guān)注
關(guān)注
3文章
469瀏覽量
16428
原文標(biāo)題:在Github上為RT-Thread貢獻(xiàn)代碼,為自己的人生涂色(文末有1024節(jié)福利)
文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論