Huawei LiteOS(以下简称LiteOS)的代码仓托管在gitee上,因此代码贡献者需要在gitee上注册账号才能贡献代码。注册账号可以参考注册Gitee账号。
代码贡献可以分为在线修改和本地提交两种。
在线修改适用于修改量较少的情况,方便快捷,点击页面“编辑”按钮,跳转到对应的编辑页面。
编辑修改后,点击页面下方“提交”按钮,即提交修改到 LiteOS 工程,静候工作人员审核即可。
进行LiteOS的代码贡献可以遵循以下流程:
- 下载Git工具。
- 配置SSH公钥。
- 配置本地Git账户信息。
- fork LiteOS源代码。
- 同步LiteOS仓库代码到fork的仓库。
- 提交本地修改到fork的仓库。
- 提交Pull Request到LiteOS官方主仓库。
- 查看Pull Request的状态。
-
先查看本地是否有公钥。如果存在公钥,则返回类似如下显示的一对文件,一般文件名为 id_rsa 和 id_rsa.pub,其中 .pub 后缀的文件是公钥,另一个文件是密钥。
$ ls ~/.ssh id_rsa id_rsa.pub
如果系统内没有公钥文件,可以执行如下命令生成,公钥文件一般默认存放在 ~/.ssh路径下:
$ ssh-keygen -t rsa -C "[email protected]" //其中的邮箱为注册gitee账户时使用的邮箱
-
配置gitee账户的SSH公钥,参考gitee上SSH公钥设置。
账户信息即用户名和邮箱,注意此处的用户名和邮箱指的是注册gitee账户所使用的账户名和邮箱。配置以后,每次Git提交都会使用该信息:
$ git config --global user.name "your-username"
$ git config --global user.email "[email protected]"
如果本地pc上已经存储了账户信息,可以在“控制面板->用户帐户->凭据管理器”中确认保存的gitee账号密码是否正确,如果错误会导致无法提交修改到远程仓库。如果无法在本地pc上确认或修改为正确的账号信息,可以执行如下命令,不使用本地pc中保存的账号密码:
$ git config --global --unset credential.helper
查看git的所有配置信息,可以使用如下命令:
$ git config --list
-
使用个人gitee账号登陆gitee。
-
进入LiteOS官方主仓库(master分支):LiteOS源码仓。
-
点击右上角fork按钮,将LiteOS的代码fork到个人账号下,在弹出的窗口中选择要fork到的个人账号,点击确认后,稍等一会就会自动跳转到刚刚fork出来的个人账号下的LiteOS仓库。
开发代码前,首先需要确保当前个人账号下的LiteOS代码和LiteOS官方仓库是一致的。 因为从fork代码到现在,LiteOS官方仓库可能已经更新了内容,所以开发代码前需要先同步LiteOS仓库代码到fork的仓库。如果仓库刚刚fork,可以跳过此步。
点击上图中红框中的按钮从LiteOS官方仓库拉取代码到个人账号fork的仓库,此时会弹出一个对话框以确定同步动作,如下图所示:
点击确定后,gitee就会开始同步代码,用户无需再做其他操作。
-
开发的第一步,是clone代码到本地pc。
git clone https://gitee.com/gitee账户名/LiteOS.git //个人账号fork的仓库地址,clone下来后仓库名默认为origin
基于LiteOS的远程master分支,创建并切换到本地分支,例如本地分支名也是master:
git checkout -b master origin/master
-
在本地分支上进行开发。开发完成之后,git add 添加代码到本地仓库,并git commit 提交到本地仓库,具体commit信息的填写规范,请参考LiteOS提交修改时的commit写作规范。
-
执行git push origin master操作,将代码提交到gitee上自己个人账号的master分支。
说明: 所有git命令相关操作,如果不熟悉,请自行google或者baidu查找。
通过上述步骤,修改已经提交到个人远程仓库中,此时就可以向LiteOS官方主仓库master分支提交Pull Request,该操作在gitee网页上进行。
-
进入个人账号下fork的LiteOS仓库首页,点击下图红框中的“+ Pull Request”。
-
之后gitee会跳转到创建Pull Request的详细页面,并给出对应的源分支和要修改的目标分支,目标分支为LiteOS官方主仓库master分支,如下图。
如果代码没有冲突则会显示下图红框中“可自动合并”的提示,否则需要先解决冲突然后再重新创建Pull Request。在线解决代码冲突可以参考在线解决代码冲突。
填入Pull Request的标题和说明,点击“创建”,就可以提交一个Pull Request。右边的审查人员、测试人员、里程碑、标签、优先级是可选项,不选择也不影响Pull Request的创建。
- 如果提交的代码是为了解决issue问题,记得将issue和此次代码提交相关联,关联方法请参考Commit关联Issue和Pull Request关联Issue。
- 如果提交的Pull Request中有新增意见,需要在评论里回复,并@提意见的人说明已经解决。
-
进入LiteOS主仓库首页。
-
点击下图中的“Pull Requests”,可以看到当前LiteOS仓库上所有的Pull Request。
“开启的”表示这个Pull Request的代码还没有合入,“已合并”表示这个Pull Request的代码已经合入,“已关闭”表示这个Pull Request虽然已经关闭但是代码没有被合入。
现在就静候LiteOS主仓库管理员review代码吧,验证ok就会合入修改,恭喜您成为Contributor,感谢您为开源社区做出的贡献。