前言
想要在开源社区中贡献自己的代码,学会提交PR是必不可少的,下面这篇文章就带大家从零开始,一步一步带大家使用Git命令提交PR。
下面我就以我们实验室在SIG下的子仓库作为PR提交对象,来作为本次的教学案例。
相关术语
下面是这次文章中提到相关的Git命令或者术语解释,如果看着有疑惑可以翻回来看看。
- init:初始化空仓库。
- fork:指的是从源仓库中复制一份拷贝到自己账号下的远程仓库,在这个时间节点下两者的内容一致; 后续需要不断的手动完成同步。
- clone:指的是将开源仓库下载到本地。
- add:该命令作用是将修改的内容写入暂存区。
- commit:指的是将暂存区里的改动给提交到本地的版本库,也就是将改动的内容在本地生成一次记录。
- push:指的是将自己的修改记录(commit)提交到本人账号的远程仓库下。
- pr:指的是将自己的修改从自己的远程仓库下提交到源仓库下。
环境准备
1、创建Gitee账号,并且绑定邮箱
这一步进入Gitee官网进行注册,然后在设置中绑定邮箱即可,就不过多赘述。
2、签署DCO协议
这是一个开发者原创声明,在提交到OpenHarmony仓库的时候,官方检测人员会有DCO的检测。
这里注意签署的邮箱是Gitee绑定的邮箱即可。
签署DCO (openharmony.cn)。
(三) fork远程仓库
进入我们STZU_FSR_lab_for_OpenHarmony官方主仓contest,点击fork即可将代码拉到我们自己的远程仓库。
接着选择自己的目标仓库就完成了。
下载Git
首先是下载Git,这部分网上很多资料,就不过多赘述。
下载好后,我们就可以使用git bash来拉取仓库到本地,以及上传等操作了。
克隆文件到本地并且将修改上传至远程仓库
1、克隆远程仓库到本地(Clone)
我们先右键选择一个要存放远程仓库内容的空文件夹,选择Git Bash Here。
在远程仓库中负责下载地址,如下图:
接着输入:
$ git clone + 下载地址
我们就可以将远程仓库的内容下载到本地。
2、暂存修改内容到暂存区(add)
这里我已经对文档做了一点修改,然后我们就将修改提交到暂存区。
还是像上一步一样打开我们的git bash。
输入:
$ git add .
该命令会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区。
3、生成修改记录并且备注说明(commit)
接着我们输入如下命令,将暂存区的内容生成一次修改记录。
$ git commit -s -m “添加视频链接”
- -s作用是添加署名。
- -m 参数表示可以直接输入后面的“message”。
这里注意一定要加-s,否则无法通过官方仓库门禁检测。
4、上传到个人的远程仓库(push)
输入一下命令,然后等待上传即可。
$ git push origin HEAD
看到这样,我们就算是上传成功了!
接着我们回到网页里面查看远程仓库,可以看到确实有刚刚的提交记录,并且文档也确实修改了,到此我们就完整的完成了一个从克隆到上传远程仓库的完整流程。
提交PR至源仓库
1、新建PR
接下来就是将我们个人远程仓库的修改通过pull request(PR)提交到源仓库。
首先我们在自己克隆的远程仓库点击新建Pull Request。
然后选择我们刚刚改动的分支,然后添加描述,进行提交即可。
2、触发OpenHarmony源仓库门禁
进入我们的PR页面,可以看到评论区有门禁触发提醒。
然后我们最后一步就是在评论区评论 sig start build。
当检测结果如下,就说明门禁通过了,最后等待官方人员手动合入即可。
到此我们就完成了从0到提交PR至OpenHarmony源仓库的完整过程啦~
门禁检测失败原因
下面是部分我遇到的门禁检测失败原因总结:
- dco检查失败:
- 该gitee账号绑定的邮箱没有签署DCP协议,具体签署方法上面文章以及提到。
- commit(修改记录) 没有进行署名,具体署名方法上面文章以及提到。
- 代码合规检测失败:
- 代码文件内含有二进制文件,比如pdf文件等,需要移除二进制文件并且重新上传。