1024程序员节,首先向改变世界的程序员致敬!真心祝愿天下的程序员:码无bug,少加班,邂逅真爱,多加薪。用技术改变世界的你们,值得更多的美好!
rt-thread作为一款自主物联网操作系统,通过开源社区的方式开发,截止目前已有多达上百位程序员在github上为rt-thread贡献代码,当然还有很多没有在github上提交代码的贡献者,真诚地感谢您们对rt-thread付出的心血!
支持rt-thread的粉丝们请给rt-thread项目主仓点星星:https://github.com/rt-thread/rt-thread,以鼓励rt-thread的开发者们,也希望有越来越多的rt-thread贡献者,为rt-thread贡献更多的代码!
↓↓↓
如果您愿意给rt-thread贡献代码,欢迎通过 github 的 fork 和 pull request 流程来提交代码。 代码要求请参考rt_thread项目documentation目录下coding_style_cn.txt文件(https://github.com/rt-thread/rt-thread/blob/master/documentation/coding_style_cn.txt)。
以下教程将指导您如何提交代码,以及如何提交代码才会被rt-thread官方认可。。
首先解释一下pull request这个词,pull request的意思是推送请求,开发者发起pull request 的目的是请求仓库维护人采用开发者提交的代码。下面是摘自知乎 网友的一段解释:
我尝试用类比的方法来解释一下pull reqeust。想想我们中学考试,老师改卷的场景吧。你做的试卷就像仓库,你的试卷肯定会有很多错误,就相当于程序里的bug。老师把你的试卷拿过来,相当于先fork。在你的卷子上做一些修改批注,相当于git commit。最后把改好的试卷给你,相当于发pull request,你拿到试卷重新改正错误,相当于merge。
当你想更正别人仓库里的错误时,要按照下面的流程进行:
先 fork 别人的仓库,相当于拷贝一份别人的资料。因为不能保证你的修改一定是正确的,对项目有利的,所以你不能直接在别人的仓库里修改,而是要先fork到自己的git仓库中。
clone到自己的本地分支,做一些bug fix,然后发起pull request给原仓库,让原仓库的管理者看到你提交的修改。
原仓库的管理者review这个bug,如果是正确的话,就会merge到他自己的项目中。merge的意思就是合并,将你修改的这部分代码合并到原来的仓库中添加代码或者替换掉原来的代码。至此,整个 pull request 的过程就结束了,原来仓库中就有了你贡献的代码啦。
现在以rt-thread仓库为例说明贡献代码的流程:
1. fork将rt-thread仓库fork到自己的git仓库中。
2. 克隆(clone)
将rt-thread仓库clone到自己的本地pc。
3. 创建本地分支如果想要在rtt项目上做自己的开发,最好创建属于自己的项目分支,如果是直接对rtt贡献代码,那么可以直接在master分支上进行操作。
4. 开发
发现了一个小bug并进行修改。
5. 提交(commit)向本地仓库提交bug
6. 保持本地仓库最新
在准备发起 pull request 之前,需要同步原仓库最新的代码,记得检查目前的项目是否是最新的版本。
7. push 到远程仓库push到开发者自己的远程仓库中。
8. 发起并完成 pull request
在git仓库中选择自己修改了的分支,点击create pull request按钮发起pull request.
9. 提交代码的一些约定
发起请求成功后,rt-thread维护人就可以看到你提交的代码。pull request如果被同意,你的代码就会被合并到仓库中。
关于如何有效提交补丁,可以考虑遵循以下的一些事项:
自己的代码严格遵守rt-thread的代码规范;rt-thread是一个干净,清晰的系统,代码是给人看的(机器码才是给机器看的),所以如何写一份清晰、整洁的代码也是一门学问。相信能够合并一个pr,也是对你代码的提高;
bsp的代码,请尽量确保代码改动仅限制于bsp中,而不影响到其他代码。一上来不管三七二十,大幅修改,而不考虑其他代码(内核、组件)的感受,被拒绝拒掉,妥妥的!
修改组件的代码也请尽量限制于本组件以内,天马行空会被禁空,没商量的;
提交时,更改说明的message,最好把相关的缘由写出,并在message标题上增加[bsp]/[组件名]等等的标识。
提交pr后,也多看看一些反馈,这其中可能就包括维护人对代码的review给出的整改意见,pr挂着不理会反馈,时间长了,也会被拒的。
总而言之,提交代码,发pr,是让rt-thread更棒!也是让自己的人生有不一样的色彩!
至此,我们就完成了一次代码贡献的过程。
恭喜,你就成为一个rt-thread 的贡献者了。请继续提交代码!
谷歌推出AI驱动的代码补全和生成工具Duet AI
半导体芯片龙头股频遭减持
小鹏汽车:明年进入辅助驾驶下半场,3年后向无人驾驶进发
超声波流量计是什么,超声波流量计的常见故障剖析
什么是卤钨灯,卤钨灯详细介绍
教你如何快速在Github上为RT-Thread贡献代码
基于以太网的标准化车辆诊断
西雅特与西班牙电信公司合作 基于5G技术和数据分析研发智能网联汽车
物联网设备固件安全风险,TinyScan帮您全面检测
Realme RMX2170和RMX2151手机已获得IMDA认证
区块链技术有何特点,都用在了哪些领域?
真实上手体验OPPOr11新机上手体验!可能这就是女神喜欢的原因!
欧洲一箭双星发射任务再度失败,只飞行8分钟
AI化身监工,能断绝上班摸鱼现象?
3D打印技术+大数据 探秘GE位于格林维尔的工厂
日立2518彩电同时出现多种故障的维修
太阳能离网逆变电源工作方式和特点介绍
Ducommun天线ALC系列
人工智能才是大产业,才是华为发展的战略要地
无人机携人工智能助软件工程师发现未来