鲲鹏社区首页
中文
注册
提交你的第一个PR

提交你的第一个PR

openEuler

发表于 2023/08/09

0

什么是PR

PR——Pull Request,在开源社区常常被简称为PR,是自己修改源代码后,请求上游仓库采纳该修改时采取的一种行为。

什么时候需要提交PR呢?通常,软件开发者向开源社区贡献代码的时候会提交PR。也就是说,当你提交一个PR的时候,就意味您已经开始给社区贡献代码了。比如我们可以向openEuler开源创新实践课贡献文档和代码以优化该课程。本次课程的playground仓库是Git-Basics,大家应该向这个仓库提交PR:

提交PR的流程

(1)贡献者从社区官方代码库中fork一份代码到自己的库;

(2)将自己社区库中的代码clone到本地开发环境上;

(3)修改代码,解决bug或开发新feature;

(4)提交修改;

(5)将本地提交push到自己的社区库中;

(6)向社区官方代码库提交PR;

(7)待Maintainer review后合入社区官方代码库。

提交你的第一个PR

1. 开发环境准备

我们在提交PR之前要准备好相应的开发环境。

(1)注册Gitee账号并签署CLA

a. 在Gitee官网注册Gitee账号

b. 签署个人CLA

签署CLA的网址也可前往openEuler官方网站查看。

注意:签署CLA的邮箱地址应与Gitee账号关联的“提交邮箱”地址保持一致。
所谓Gitee ID即Gitee账号,可以在自己的“个人主页”的URL(Uniform Resource Locator)中查看,如下例所示:

提交邮箱可以在“设置 | 邮箱管理”中查看,如下例所示:

(2)安装git工具软件

访问Git官网按照提示在您的系统上安装git工具软件(保持默认安装即可)

(3)正确配置git账号

按以下命令进行配置:

git config --global user.name "your-user-name"
git config --global user.email "your-email-address-on-gitee"

用户名配置成你的Gitee账号,邮箱地址配置成该账号对应的提交邮箱(也是签署了CLA的邮箱)。

在本例中是这样的:

git config --global user.name "woodrabbit"

注意:需要配置成你自己的Gitee账号。

git config --global user.email "woodrabbit@qq.com" 

注意:需要配置成你自己Gitee账号的提交邮箱。

git config –list

检查配置后的结果。

2. 准备好自己的远程仓库

步骤1:将您要提交PR的上游仓库fork到您自己的gitee账号下

比如,以本课程playground仓库为例:

点击仓库右上角的“fork”按钮即可fork。

本例fork到了一个叫woodrabbit的账号下(您应该fork到自己的账号下):

完成后该仓库会出现在自己的主页下:

注意:如果之前已经fork该代码仓又想要删除后重新fork,则可以先进入自己的代码仓,然后进入“Settings(设置)”页面,点击左侧导航栏的“Delete(删除)”链接,在确认操作后,要求对用户进行密码校验确认。校验密码后即可删除仓库。

在gitee页面上fork完毕后,下面的步骤在命令行窗口运行git命令。

步骤2:将自己账号下这个fork而来的仓库git clone到本地

git clone https://gitee.com/woodrabbit/git-basics.git

cd git-basics

git status

 现在应在master分支。

步骤3:创建自己的新分支

git switch -c woodrabbit

这里请以自己的Gitee ID创建新的分支。

git branch

git status

注意命令中“woodrabbit”只是举例,同学们以自己的Gitee-ID为名创建分支。

步骤4:进入我们这个实验的工作目录

cd ./pr/primary/

我们的修改都在这个目录进行,并且注意不要修改这个目录下的其他文件。

步骤5:以自己的Gitee ID为名建立空文件

cd . > woodrabbit

这里应该用自己Gitee ID。

说明:“cd .”表示改变当前目录为当前目录,等于没改变,故该操作不会有任何输出。将该输出重定向到一个文件即创建了一个空文件。

步骤6:将此文件加入到git暂存区

git add woodrabbit

这里应该用自己Gitee ID。

步骤7:进行commit

git commit -s -m "Add woodrabbit"

这里将引号中斜体字换成自己Gitee ID。

步骤8:推送到自己的远端仓库

git push

但是报错,提示第一次push要用以下命令:

git push --set-upstream origin woodrabbit

注意换成以自己Gitee ID命名的分支。

注意:(1)在这个过程中,您需要输入Gitee账号及其登录密码。(2) 如果后续还有commit要推送到远端仓库的话,直接用git push命令就行了。

步骤9:查看状态

git status
git log

3. 提交PR

在前面的步骤中git push之后,自己仓库的代远程码上就会出现自己新建的分支(本例是woodrabbit):


鼠标点击这个分支就可以切换到这个分支。

步骤1:新建Pull Requests

点击“Pull Requests”按钮进入该页面:

点击“New Pull Request(新建Pull Request)”按钮:

步骤2:选择自己创建分支提交PR

 

选中自己仓库的分支为刚才提交的分支(这里是从自己远端仓库的woodrabbit分支合并到上游仓库的master分支)。

并填写标题文字和注释(注释说明此次提交做了哪些改动)。比如:

标题可以这样写:woodrabbit - 提交了以自己Gitee ID命名的文件(注意前面要改成自己的Gitee ID)。

注释可以这样写:提交了以自己Gitee ID(woodrabbit)命名的文件,主程序会将我的ID打印出来。

然后点击右下角的“Create(创建)”按钮。

提交成功后原始远程仓(https://gitee.com/openeuler/git-basics)将会显示此次提交:


这时作为社区的一个contributor,您的作业已经提交完毕。如果您提交的是代码,系统一般会自动进行test。接下来要等待社区的committer进行review,如果合乎要求,他/她会进行/lgtm动作。之后就需要社区的maintainer进行最后确认,如果一切顺利,他/她会进行/approve动作,这之后,您的作业(或代码)就会合到上游远程仓库里去。关于这些流程的具体命令及其含义可以参考以下文档进行了解:

https://clasign.osinfra.cn/sign/Z2l0ZWUlMkZvcGVuZXVsZXI=
https://gitee.com/openeuler/community/blob/master/zh/contributors/Gitee-workflow.md
https://gitee.com/openeuler/community/blob/master/en/sig-infrastructure/command.md

4. 如何运行仓库中的程序

可以运行仓库里的main.c程序以观看提交后的效果。该main程序可以在Linux和类UNIX的macOS上运行,在Windows系统上,您可以参考openEuler开源创新实践课中的实验手册搭建环境以验证效果。运行该程序需要执行的命令如下:

cd pr/primary/src/
gcc main.c
./a.out

这样凡是正确提交了的Gitee ID都可以在屏幕上显示出来。

本页内容