共计 3918 个字符,预计需要花费 10 分钟才能阅读完成。
龙蜥社区近期上线了【人人都能够参加开源】流动,流动里波及了一项重要的事项就是:提!交!PR!本文就跟大家分享一下作为入门级的开发者,能够通过哪些形式参加社区建设?以及在社区参加过程当中如何提交 Pull Request(以下简称“PR”)?本文整顿自龙蜥大讲堂第 23 期,视频回放已上线至龙蜥官网,欢送查看(链接见文末)!
一、提交 PR 次要流程
代码库存放于 Gitee 平台上,以本次流动为例,支付的工作详情(即 Issue),以及最终提交的工作成绩,都会在这个平台上进行。那么,如何在 Gitee 上提交一个 PR 呢?
1、Fork(复刻)一个代码仓库。在本次流动工作的 Issue 页上,曾经写明了指标仓库。你只须要返回 Fork 指标仓库。
2、Clone(克隆)本人的仓库到本地。
3、建设一个分支,在分支中批改内容,而后提交 PR。
4、编写 comments,也就是你做了哪些变更,而后期待仓库管理员的审核。
5、如有须要,能够与管理员(个别是 SIG maintainer)进行交换,可能会须要改良本人的 PR。
6、管理员合入你的代码后,关注本人的代码是否有改变,并踊跃加入评审。
(图 / 提交 PR 流程)
二、初学者容易出错的中央
须要留神的是,初学者常常在 Git 命令上出错。常见的起因个别是:本来应该放在不同分支上批改的内容,却被放到了雷同的分支上批改,相当于重叠了,这样将会与同时提交的小伙伴产生抵触。
(图 / 出错示例图)
上图可看出,1000 人依照不同分支同时开发没问题,那么问题常常会出在哪?就是在合并入的时候容易出错。如果想把 1000 个分支合并回来,并且不出错,在这个过程当中可能就会有一些细节问题。
怎么解决这些问题?须要初学者依据一些既定的流程来进行操作。这些既定的流程本文会写出一部分,另外一部分和公司的具体开发流程相干。
三、手把手演示如何提交 PR
解决如上问题,首先就是要新建分支,接下来用具体例子来具体解释。
以 Express DPU 我的项目为例(是高性能的 DPU 库)。当你拿到这个我的项目的时候,首先想到的是这个我的项目我能做点什么?比如说(本文演示须要)小龙看到 Readme-cn.md 文件中有个题目是英文的,是不是能够变成中文的呢?
接下来,就依照步骤批改这个英文题目。
第一步:须要先 Fork 一下感兴趣的代码仓库。
点击 Fork 后抉择集体。
Fork 的含意是什么?就是对代码进行批改的时候,不会影响上游的代码,这样的话避免一些误操作,并且也能够在你的代码中衍生出本人格调的代码。
第二步:将 Fork 好的代码仓库 Clone 到仓库本地。
Gitee 平台中会有记录,你会看到这个代码仓是“forked from”上游的代码仓。当拿到了本人的代码仓当前,就能够进行 Clone 操作,抉择 HTTPS 或者是 SSH。如果抉择了 SSH 的话,须要配置本人的密钥,密钥的配置在如下图所示地位。
接着复制 SSH,复制完了之后,要关上终端。如果没有终端,举荐用龙蜥实验室(曾经预装了 Anolis OS 的收费服务器)来操作。
在终端输出 ssh-keygen -t ed25519 -C “ 密钥名称 ”,回车三次便生成了密钥,通过查看 ~/.ssh/id_ed25519.pub 文件获取公钥。
复制公钥,回到 Gitee 集体仓库的设置页面。找到【平安设置】->【SSH 公钥】,在如下图地位粘贴公钥。
将公钥确定保留胜利后,在终端输出 ssh -T git@gitee.com,首次增加须要键入 yes,看到 successfully 字样,则表明增加胜利。
最初输出命令 git clone,而后粘贴 SSH 链接,这个第一条命令是下载代码到你的本地计算机。
第三步:在本地建设分支、实现批改,并进行 PR 操作:
下面步骤中,下载实现后执行命令 cd ExpressUDP 进入该目录,这个时候就曾经拿到了代码。Readme-cn.md 文件在这个目录下。
接下来,规范的流程是在本地建设分支、批改文件,把批改后的内容 commit 到本地仓库,再 push 回本人的代码仓,最初开一个 PR。
小贴士 1:假如小龙间接批改,等曾经批改好了后会发现这个步骤错了(其实也不能说齐全是谬误的),因为没有恪守规范的流程。规范流程第一步是要新建一个分支批改,不能在原来的根底上改,否则容易与其余小伙伴的代码抵触了。所以要新建一个本人的分支,在本人的分支上进行批改。对于初学者来说,往往会疏忽这点,要特地留神。
如果没有创立任何分支就批改了 readme,该怎么持续操作呢?咱们能够把这个批改纠正过去。先用 git status 查看状态,看到是已批改的;而后用 git checkout Readme-cn.md 还原状态,相当于把已做的批改革除了;最初再用 git status 确认下状态。
接下来,咱们回归规范操作流程。
首先,创立一个分支:执行 git checkout-b xxx 命令创立一个分支名称。当你执行完这条命令之后,其实实现了两个操作:第一个是创立一个新的分支;第二个是切换到了创立的分支。
接着,执行 git add Readme-cn.md,就是要在分支中更新这个文件的意思。
而后,用 vim 命令批改文件中的英文题目。
此时,能够用 git status 命令来看一下,零碎提醒 readme 文件曾经被批改了。用 git log 能够查看代码仓库的批改历史。
接下来,执行 git commit -vs,输出批改阐明。命令中的 vs 是为了加上签名并显示批改内容。
此时小龙批改的内容还在本地,要是想把它放到服务器上,就要通过 push。间接执行 git push 的时候就会通知你要用 git push –set-upstream origin < 分支名 > 这条命令来关联近程分支,关联后,接下来 push 能够间接用 git push origin 了。
小贴士 2:这个时候有两个 remote,这两个 remote 表白的是什么?是集体仓库和原始仓库。小龙为什么要这么做?大家能够设想 upstream 上的代码变动是十分频繁的。然而这个仓库是从 upstream fork 过去的。那么当 upstream 在变动的时候,仓库实践上是不会变动了。然而怎么样能拿到 upstream 最新的代码?从新克隆一遍都没有问题。但如果小龙设置了两个 remote,其实操作就很简略,指定从 upstream 上拉代码,就能够疾速的跟进过去(这是作者的一个应用习惯)。
参考上面的命令来实现 push。
从上图能够看到,push 后零碎会有一句提醒(这个提醒其实是 Git 仓库给过去的),并提供了一个“https://gitee.com”结尾的链接,你能够间接通过该链接在网站上创立一个 PR。
关上这个链接,留神“源分支”保留默认值,但“指标分支”须要批改,在这个示例中指标应该指向 anolis 的 master。
第四步:编写 comments 并期待 review。
comments(也就是 commit log)曾经在上一步中输出过了。此步骤的重要性不亚于写代码,因为 comments 只有清晰明了地记录你的改变,例如批改点、是否校验、评估的影响等,能力让审核人疾速看懂。
第五步:提交了 PR 当前,就会调配给审核人,期待审查和测试。通过后能力合入代码库。这期间,倡议与 Maintainer 多进行互动。
第六步:合入后关注本人的代码是否有改变,并踊跃加入评审。
依据全文,最初总结下要想提交一个 PR,须要以下 6 个步骤:
1、须要先 Fork 一下感兴趣的代码仓库;
2、将 Fork 好的代码仓库 Clone 到仓库本地;
3、而后在本地建设分支、批改实现,并进行 PR 操作;
4、编写 comments 并期待 review,此步骤的重要性不亚于写代码;
5、与 maintainer 进行交互,反馈倡议改良本人的 PR,这个过程可能耗时较久;
6、合入后关注本人的代码是否有改变,并踊跃加入评审。
对于回放和课件获取
【视频回放】:视频回访已上传至龙蜥官网:https://openanolis.cn/video,视频中有更具体的操作与示例。
【PPT 课件获取】:关注微信公众号(OpenAnolis),回复“龙蜥课件”即可获取。有任何疑问请随时征询龙蜥助手—小龙(微信:openanolis_assis)。
另外,流动特设“体验官”一职,正在招募中,仅限高校学生。加助手 - 小龙微信(微信:openanolis_assis),备注“体验官”,赶快退出吧!
—— 完 ——
退出龙蜥社群
退出微信群:增加社区助理 - 龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;退出钉钉群:扫描下方钉钉群二维码。欢送开发者 / 用户退出龙蜥社区(OpenAnolis)交换,独特推动龙蜥社区的倒退,一起打造一个沉闷的、衰弱的开源操作系统生态!
对于龙蜥社区龙蜥社区(OpenAnolis)由企事业单位、高等院校、科研单位、非营利性组织、集体等在被迫、平等、开源、合作的根底上组成的非盈利性开源社区。龙蜥社区成立于 2020 年 9 月,旨在构建一个开源、中立、凋谢的 Linux 上游发行版社区及翻新平台。
龙蜥社区成立的短期指标是开发龙蜥操作系统 (Anolis OS) 作为 CentOS 停服后的应答计划,构建一个兼容国内 Linux 支流厂商的社区发行版。中长期指标是摸索打造一个面向未来的操作系统,建设对立的开源操作系统生态,孵化翻新开源我的项目,凋敝开源生态。
目前,Anolis OS 8.6 已公布,更多龙蜥自研个性,反对 X86_64、RISC-V、Arm64、LoongArch 架构,欠缺适配 Intel、兆芯、鲲鹏、龙芯等芯片,并提供全栈国密反对。
欢送下载:
https://openanolis.cn/download
退出咱们,一起打造面向未来的开源操作系统!
https://openanolis.cn