要想成功,你必须自己制造机会,绝不能愚蠢地坐在路边,等待有人经过,邀请你同往财富与幸福之路。——歌夫

文章配图

大家好哇,许久不见,估计还有很多小伙伴忘记还有这个公众号吧,也感谢大家这么久一直以来的关注,也感谢在短视频盛行的今天,你们还能静下心来坚守文字的阵地。

说到这次的主题,参加 鸿蒙项目
的开源,也是小编第一次拥抱开源,就像是别人有困难,然后给予帮助的那种快乐感。之前也了解过开源,曾得到过某位大佬赠予的开源书籍,但是一直止于实践,经过这次开源项目的实践后我想以后有类似的项目还会继续参加。

可能有人会觉得参加开源并不会得到什么,毕竟为爱发电这种事还是很少有人去做。可当我们真正去参与到其中的时候,就会发现原来这个团体有这么多小伙伴,大家在一起可以互相学习交流,可以一起探索新的知识,在开源的这个团体中可以让我们学得更多。

接下来小编将会带大家认识提Bug的大致流程。

一、准备工作可能会有小伙伴不知道提PR( Pull Requests )是啥,简单来说,就是** 拉取(forked) 一个代码仓库,然后 clone到本地 **查找错误,然后通过Git把这个经过修改的仓库push上去。push上去后就需要提交PR给这个开源项目的管理者,PR中包括了找到的什么错误,对项目有什么影响等等,随后会有相关的进行查阅编译,在提交PR的时候可能会需要提一个Issues。

那么首先需要我们下载一个Git,相关步骤: 用Hexo+Github Pages搭建私人博客(第二站)

当我们下载完Git后暂时不做相关的配置。

这里以小编提交两次PR为例,第一次是在Docs仓提交的 轻量级PR
,简单来说就是简单的修改你觉得文档中有什么表达不好或者有语法错误的地方;第二次是修改了部分源代码。

To:主要会讲到在提交时踩过的坑~

二、轻量级PR提交

1.首先我们找到OpenHarmony的开源仓库:

https://gitee.com/openharmony

2.找到如下页面中的docs仓库,点击进去:

文章配图

3.在docs仓库里面的右上角找到Forked,选择你的账号并确认,如下:

文章配图

To:此步骤好比是将docs仓库复制粘贴到你自己账号下面。

4.等待刷新后会进入到我们的docs仓库,接下来就是我们去相关文档查看有没有需要修改的地方:

文章配图

To:比如这里小编一直点击到docs仓库的zh-cn/design/API-Review-Template.md目录下。

5.在文档下标题上面的一框中找到编辑,进入编辑页面即可使用markdown语法进行修改:

文章配图

修改完成后,我们将页面滑到最下面,在扩展信息中可填写修改的理由,并在最后加上: Signed-off-by: Gitee用户名 <邮箱> 然后我们点提交 即可。

返回到Gitee的docs仓库下便可以看到我们提交了一个修改内容,那么我们既然要把这个内容修改到开源的远程仓库里面,就需要提交一个PR到远程仓库,即合并修改的内容。

文章配图

如上图,我们 找到Pull Requests ,然后再找到新建Pull
Request,点击进去后会进入到一个填写信息的页面,如下,首先要填写的是标题,在下面的框框内大概 描述一下修改的说明,填写完后点击下面的创建Pull
Request即可。

文章配图

进入后我们会进入一个页面,下面可以看到有评论的地方,首先第一步我们可以先评论 start build
进行编译测试,这时我们会发现一个问题,它需要我们签署一个DOC协议,如下:

文章配图

这种情况我们只需点击进去按照步骤来,随后评论check dco检查完后继续评论start build即可。

三、通过Git提交PR

当我们有对源码进行修改然后提交PR时就需要通过Git这个分布式版本控制系统(能够实现本地版本控制),它可以快速、高效地处理项目版本管理。值得注意的是我们在管理项目时如果有多个账号就需要设置好用户名和邮箱,比如在设置邮箱时就需要注意是否添加

global,添加它就代表此用户名和邮箱为全局配置。在配置完后我们还需要将Github或者Gitee里面的公钥添加到我们的Git里面,相关内容在前面的博客设置中有使用到。

在设置好相关配置后,当我们把需要修改的代码仓clone下来后便是查找Bug,关于查找Bug这里就不多展示了。

这里关于提交到仓库和之前博客提交到Github上是差不多的,主要是其中会遇到很多问题,小编这里把遇到的一些相关问题给大家展示出来,方便以后大家可以快速解决。

1.Clone仓库时报错

当我们在Git上输入git clone xxxx时,发现报错如下: “fatal: Could not read from remote
repository.”

首先需要排查的就是 自己的账户以及ssh公钥有没有设置好。小编主要是之前配过Github上面的,然后在Gitee上面没有配置,所以会有报错。** 2. gitBash did not match any file(s) known to git **
这个报错主要可能有两个原因,第一个可能是在commit的时候使用的是单引号,这个在Linux系统是可行的,但是在Windows上只能使用双引号,当然这个报错也是最简单。
还有一个可能是分支问题,不过这个主要是我们管理之前的仓库时容易遇到的问题,在提交PR时可不考虑此问题,当然这也 要我们去解决啦。
比如我们克隆了一个仓库,然后切换到master分支,但是在切换时就会提示上面的错误。

git checkout master

首先我们看一下分支情况:

git branch -a

如果没有找到我们想要的分支,则输入git fetch获取所有分支。然后切换到远程master分支,使用如下命令:

git checkout origin/mater//输出develop

此时也会报错,但不管它,我们继续运行命令:

git checkout -b mastergit pull

此时也会报错,说明我们建立的master分支不能和远程的master分支建立联系。那么我们继续命令:、


git branch -u origin/master mastergit pull//输出:Already up-to-date.说明问题已解决。

当然也有一些其他的小问题,但是最终在查资料的情况下也是可以解决的,加上现在ChatGPT出来了,对于我们解决问题的速度无疑是巨大的提升。

最后,这篇文章也是在去年暑假就打了草稿,由于一些原因并没有继续完成,这里也希望能够继续和大家一起分享。当时也是和另外一位大佬一起参与的开源项目,也感谢能够有他的指导。也感谢大家一直都在路上,我想不管风雨兼程,总有一天能够到达自己想要到达的终点!

文章配图

文章配图

为你,千千万万遍

一键三连,就差你了
文章配图

预览时标签不可点

阅读




__