开源趣事~ 记给 OpenHarmony 提 PR 的那些事

news2024/11/23 3:00:27

大家好哇,许久不见,也感谢大家这么久一直以来的关注,也感谢在短视频盛行的今天,你们还能静下心来坚守文字的阵地。

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

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

接下来小编将会带大家认识提 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 master
git pull

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/507493.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue脚手架+elementUI,实现登录用户时的Loading...窗口

文章目录 App.vuevuex全局变量登陆成功Login组件使用AboutMe组件中关闭 登录失败情况login组件中关闭 改为aop思想的请求拦截器 App.vue 为了全局通用控制此标签&#xff0c;所以我建议把他放到App.vue文件中 <!--全局加载ing&#xff0c;保证不会在转换组件时被销毁-->…

Day965.从持续集成到持续部署 -遗留系统现代化实战

从持续集成到持续部署 Hi&#xff0c;我是阿昌&#xff0c;今天学习记录的是关于从持续集成到持续部署的内容。 只有做好任务分解和小步提交&#xff0c;才能放心大胆地 PUSH 代码&#xff0c;触发持续构建&#xff1b; 只有通过质量门禁&#xff0c;才能得到一个有信心的制…

【Spring MVC】Spring MVC的执行流程以及运行原理

文章目录 一、 什么是MVC&#xff1f;二、什么是SpringMVC&#xff1f;三、SpringMVC中的核心组件四、SpringMVC的执行流程五、关于DispatcherServlet的配置说明六、关于SpringMVC的配置文件以及常用部分注解解释七、参考资料 一、 什么是MVC&#xff1f; MVC 是 Model、View …

软件工程的基础

软件危机软件工程软件工程是将系统化的&#xff0c;严格约束的&#xff0c;可量化的方法应用于软件的开发&#xff0c;运行和维护&#xff0c;将工程应用于软件。 软件工程的三个要素&#xff1a;方法&#xff0c;工具&#xff0c;过程软件的生命周期&#xff0c;是指从从软…

Vue列表展示【第二篇】

&#x1f331; 1、vue列表展示案例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>vueDemo02列表展示</title> </head> <body> <div id"xy"><!--原始展示方式…

深入篇【C++】类与对象:运算符重载详解 -(下)+日期类的实现

[TOC](深入篇【C】类与对象&#xff1a;运算符重载详解-(下&#xff09;日期类的实现&#x1f4af;干货满满&#xff01;) ⏰一.运算符重载 内置类型(int /double…… )是可以之间进行运算符之间的比较的&#xff0c;因为编译器知道它们之间的比较规则&#xff0c;可以之间转…

Linux下C/C++(端口扫描技术)

随着互联网使用的不断增加&#xff0c;网络攻击也在增加。互联网本质上已经成为现代。因此&#xff0c;了解互联网和使用互联网是非常重要的。网络技术的安全性在当今时代是非常重要和必要的。 在本文中&#xff0c;我们将讨论一个非常重要的主题&#xff0c;即可能破坏计算机…

es 7.x 通过DSL的常用查询语句

一 模拟造数 1.1 模拟数据 添加数据修改数据的请求方式为post http://localhost:9200/student/_doc/101 { "name":"zhangsan", "nickname":"zhangsan","sex":"男","age":30,"createTime":…

InnoDB线程模型

新版本结构演变 MySQL 5.7 版本 将 Undo日志表空间从共享表空间 ibdata 文件中分离出来&#xff0c;可以在安装 MySQL 时由用户自行指定文件大小和数量增加了 temporary 临时表空间&#xff0c;里面存储着临时表或临时查询结果集的数据Buffer Pool 大小可以动态修改&#xff0…

2.3 利用NumPy进行统计分析

2.3 利用NumPy进行统计分析 2.3.1 读/写文件1、二进制的文件读写2、读取文本格式的数据 2.3.2 使用数组进行简单统计分析1、排序2、去重与重复数据3、常用的统计函数 2.3.1 读/写文件 NumPy文件读写主要有二进制的文件读写和文件列表形式的数据读写两种形式 1、二进制的文件读…

代码随想录算法训练营第三十六天 | 重叠区间

435. 无重叠区间 文档讲解&#xff1a;代码随想录 (programmercarl.com) 视频讲解&#xff1a;贪心算法&#xff0c;依然是判断重叠区间 | LeetCode&#xff1a;435.无重叠区间_哔哩哔哩_bilibili 状态&#xff1a;能做出来&#xff0c;用的“补充(1)”的左边界排序&#xff0c…

SpringCloud —— eureka

目录 1.认识微服务 1.0.学习目标 1.1.单体架构 1.2.分布式架构 1.3.微服务 1.4.SpringCloud 1.5.总结 2.服务拆分和远程调用 2.1.服务拆分原则 2.2.服务拆分示例 2.2.1.导入Sql语句 2.2.2.导入demo工程 2.3.实现远程调用案例 2.3.1.案例需求&#xff1a; 2.3.2.注…

4. Mysql索引优化实战一

一条SQL在MySQL中是如何执行的 1. 示例表举一个大家不容易理解的综合例子 本文是按照自己的理解进行笔记总结&#xff0c;如有不正确的地方&#xff0c;还望大佬多多指点纠正&#xff0c;勿喷。 本节课内容&#xff1a; 索引下推优化详解Mysql优化器索引选择探究索引优化Order…

解决winstore下载mincraft 出现错误提示的问题,以及minecraft.exe出现此应用无法在你的电脑上运行的原因分析。

mincraft 点开显示此应用无法在你的电脑上运行&#xff0c;去C:\XboxGames\Minecraft Launcher\Content下看了下&#xff1a; 但是别人电脑上相同目录下一样的文件能运行&#xff0c;于是选择重装&#xff0c;但是刚开始下载就遇到这个问题&#xff1a; 商店提示这个 点开一…

Neural Network学习笔记2

torch.nn: Containers: 神经网络骨架 Convolution Layers 卷积层 Pooling Layers 池化层 Normalization Layers 正则化层 Non-linear Activations (weighted sum, nonlinearity) 非线性激活 Convolution Layers Conv2d torch.nn.Conv2d(in_channels, out_channels, ke…

Web缓存利用分析(三)

导语&#xff1a;前一篇文章介绍了Server Cache Poisoning在实际应用场景下&#xff0c;产生DOS攻击的利用方式。本篇文章则介绍Web Cache Deception在真实场景下的应用方式和测试情况。 前言 前一篇文章介绍了Server Cache Poisoning在实际应用场景下&#xff0c;产生DOS攻击…

产品经理入门书籍有哪些?

说到入门产品经理&#xff0c;应该看哪些书籍呢&#xff1f;下面咱们就从产品经理的各种能力维度来聊聊&#xff0c;这样更有针对性。 一、夯实产品经理的基础&#xff0c;建立产品思维 首先我们入行&#xff0c;要清楚产品经理具体的工作怎么做&#xff0c;比如&#xff1a;…

分享一个造成azkaban上传文件失败的案例

背景&#xff1a; 当初由于开发的需求&#xff0c;需要将传统方式部署azkaban以容器的方案部署&#xff0c;不但可以满足业务需求&#xff0c;还可以将用于构建的azkaban ECS虚拟机空闲出来&#xff0c;用作k8s节点。 但是在构建azkaban容器实例的时候由于azkaban参数配…

Flink第三章:基本操作(二)

系列文章目录 Flink第一章:环境搭建 Flink第二章:基本操作. Flink第三章:基本操作(二) 文章目录 系列文章目录前言一、物理分区1.shuffle(随机分区)2.Round-Robin(轮询)3.rescale(重缩放分区)4.broadcast(广播)5.Custom(自定义分区) 二、Sink1.写出到文件2.写入到Kafka3.写入到…

leetcode:203.移除链表元素(两种方法详解)

前言&#xff1a;内容包括-题目&#xff0c;代码实现&#xff08;两种方法&#xff09;&#xff0c;大致思路&#xff0c;代码解读 题目&#xff1a; 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 …