提交你的第一个PR
发表于 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都可以在屏幕上显示出来。
本页内容