> 文档中心 > 【FFH】从0到提交PR至OpenHarmony源仓库详细教程

【FFH】从0到提交PR至OpenHarmony源仓库详细教程

【FFH】从0到提交PR至OpenHarmony源仓库详细教程

  • 前言
  • 相关术语
  • 环境准备
    • (一) 创建Gitee账号,并且绑定邮箱
    • (二) 签署DCO协议
    • (三) fork远程仓库
  • 下载Git
  • 克隆文件到本地并且将修改上传至远程仓库
    • (一) 克隆远程仓库到本地(Clone)
    • (二) 暂存修改内容到暂存区(add)
    • (三) 生成修改记录并且备注说明(commit)
    • (四) 上传到个人的远程仓库(push)
  • 提交PR至源仓库
    • (一) 新建PR
    • (二) 触发OpenHarmony源仓库门禁
    • 门禁检测失败原因
  • 最后

前言

​ 想要在开源社区中贡献自己的代码,学会提交PR是必不可少的,下面这篇文章就带大家从零开始,一步一步带大家使用Git命令提交PR。

​ 下面我就以我们实验室在SIG下的子仓库作为PR提交对象,来作为本次的教学案例。

【FFH】从0到提交PR至OpenHarmony源仓库详细教程

相关术语

​ 下面是这次文章中提到相关的Git命令或者术语解释,如果看着有疑惑可以翻回来看看。

  • init:初始化空仓库
  • fork:指的是从源仓库中复制一份拷贝到自己账号下的远程仓库,在这个时间节点下两者的内容一致; 后续需要不断的手动完成同步
  • clone:指的是将开源仓库下载到本地
  • add:该命令作用是将修改的内容写入暂存区
  • commit:指的是将暂存区里的改动给提交到本地的版本库,也就是将改动的内容在本地生成一次记录
  • push:指的是将自己的修改记录(commit)提交到本人账号的远程仓库下
  • pr:指的是将自己的修改从自己的远程仓库下提交到源仓库

环境准备

(一) 创建Gitee账号,并且绑定邮箱

这一步进入Gitee官网进行注册,然后在设置中绑定邮箱即可,就不过多赘述。

Gitee - 基于 Git 的代码托管和研发协作平台

(二) 签署DCO协议

这是一个开发者原创声明,在提交到OpenHarmony仓库的时候,官方检测人员会有DCO的检测。

这里注意签署的邮箱是Gitee绑定的邮箱即可。

签署DCO (openharmony.cn)

(三) fork远程仓库

进入我们STZU_FSR_lab_for_OpenHarmony官方主仓contest,点击fork即可将代码拉到我们自己的远程仓库。

【FFH】从0到提交PR至OpenHarmony源仓库详细教程

接着选择自己的目标仓库就完成了。

【FFH】从0到提交PR至OpenHarmony源仓库详细教程

下载Git

​ 首先是下载Git,这部分网上很多资料,就不过多赘述,下面附上一篇觉得还不错的下载以及配置教程:

Git下载、安装与环境配置_糖葫芦的小黑屋的博客-CSDN博客_git安装

​ 下载好后,我们就可以使用git bash来拉取仓库到本地,以及上传等操作了。

克隆文件到本地并且将修改上传至远程仓库

(一) 克隆远程仓库到本地(Clone)

我们先右键选择一个要存放远程仓库内容的空文件夹,选择Git Bash Here

【FFH】从0到提交PR至OpenHarmony源仓库详细教程

在远程仓库中负责下载地址,如下图

【FFH】从0到提交PR至OpenHarmony源仓库详细教程

接着输入:

$ git clone + 下载地址

我们就可以将远程仓库的内容下载到本地

【FFH】从0到提交PR至OpenHarmony源仓库详细教程

(二) 暂存修改内容到暂存区(add)

这里我已经对文档做了一点修改,然后我们就将修改提交到暂存区

还是像上一步一样打开我们的git bash

输入:

$ git add .

该命令会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区。

(三) 生成修改记录并且备注说明(commit)

接着我们输入如下命令,将暂存区的内容生成一次修改记录

$ git commit -s -m “添加视频链接”
  • -s作用是添加署名
  • -m 参数表示可以直接输入后面的“message”

这里注意一定要加-s,否则无法通过官方仓库门禁检测。
【FFH】从0到提交PR至OpenHarmony源仓库详细教程

(四) 上传到个人的远程仓库(push)

输入一下命令,然后等待上传即可。

$ git push origin HEAD

看到这样,我们就算是上传成功了!

【FFH】从0到提交PR至OpenHarmony源仓库详细教程

接着我们回到网页里面查看远程仓库,可以看到确实有刚刚的提交记录,并且文档也确实修改了,到此我们就完整的完成了一个从克隆到上传远程仓库的完整流程

【FFH】从0到提交PR至OpenHarmony源仓库详细教程

提交PR至源仓库

(一) 新建PR

接下来就是将我们个人远程仓库的修改通过pull request(PR)提交到源仓库

首先我们在自己克隆的远程仓库点击新建Pull Request

【FFH】从0到提交PR至OpenHarmony源仓库详细教程
然后选择我们刚刚改动的分支,然后添加描述,进行提交即可。
【FFH】从0到提交PR至OpenHarmony源仓库详细教程

(二) 触发OpenHarmony源仓库门禁

进入我们的PR页面,可以看到评论区门禁触发提醒

【FFH】从0到提交PR至OpenHarmony源仓库详细教程
然后我们最后一步就是在评论区评论 sig start build

当检测结果如下,就说明门禁通过了,最后等待官方人员手动合入即可。

【FFH】从0到提交PR至OpenHarmony源仓库详细教程

到此我们就完成了从0到提交PR至OpenHarmony源仓库的完整过程啦~

门禁检测失败原因

下面是部分我遇到的门禁检测失败原因总结:

  • dco检查失败:

    • 该gitee账号绑定的邮箱没有签署DCP协议,具体签署方法上面文章以及提到。
    • commit(修改记录) 没有进行署名,具体署名方法上面文章以及提到。
  • 代码合规检测失败:

    • 代码文件内含有二进制文件,比如pdf文件等,需要移除二进制文件并且重新上传。

最后

https://gitee.com/HagonChan/contest/tree/master/2022_STZU_FSR_lab_for_OpenHarmony

​ 该子仓库是用于OpenHarmony&HarmonyOS南北向系统学习资料整合(长期更新),由深圳技术大学开源创客协会以及FSR实验室学生团队负责。

​ 仓库资料内容包括技术博客demo源码(Codelabs),项目成果视频展示等。

​ 仓库处于初步建立阶段,后续会不断填充学习内容,有建议的小伙伴可以跟我们反馈,觉得不错的小伙伴也可以点个star!