---
title: 提交你的第一个PR-官方技术文章-鲲鹏社区
description: 通过一个具体的例子，让读者体验如何提交PR
keywords: PR,官方技术文章,鲲鹏社区,什么是,的流程,提交你的第一,开发环境准备,准备好自己的
url: https://www.hikunpeng.com/developer/techArticles/20230809-4?envFlag=1
section: (其他)
---

# 提交你的第一个PR-官方技术文章-鲲鹏社区

URL: https://www.hikunpeng.com/developer/techArticles/20230809-4?envFlag=1
描述: 通过一个具体的例子，让读者体验如何提交PR
关键词: PR,官方技术文章,鲲鹏社区,什么是,的流程,提交你的第一,开发环境准备,准备好自己的

官方技术文章 [了解详情](https://www.hikunpeng.com/zh/developer/techArticles)

提交你的第一个PR

提交你的第一个PR

发表于 2023/08/09

0

## 什么是PR

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

什么时候需要提交PR呢？通常，软件开发者向开源社区贡献代码的时候会提交PR。也就是说，当你提交一个PR的时候，就意味您已经开始给社区贡献代码了。比如我们可以向openEuler开源创新实践课 [了解详情](https://gitee.com/openeuler/lfs-course)贡献文档和代码以优化该课程。本次课程的playground仓库是Git-Basics [了解详情](https://gitee.com/openeuler/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官网 [了解详情](https://gitee.com/signup)注册Gitee账号

b.签署个人CLA [了解详情](https://clasign.osinfra.cn/sign/Z2l0ZWUlMkZvcGVuZXVsZXI=)

签署CLA的网址也可前往openEuler官方网站 [了解详情](https://www.openeuler.org/zh/community/contribution/)查看。

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

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

（2）安装git工具软件

访问Git官网 [了解详情](https://git-scm.com/downloads)按照提示在您的系统上安装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.gitcd git-basicsgit status现在应在master分支。步骤3：创建自己的新分支git switch -c woodrabbit这里请以自己的Gitee ID创建新的分支。git branchgit 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 [了解详情](https://gitee.com/openeuler/git-basics)）将会显示此次提交：

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

https://clasign.osinfra.cn/sign/Z2l0ZWUlMkZvcGVuZXVsZXI= [了解详情](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/zh/contributors/Gitee-workflow.md)https://gitee.com/openeuler/community/blob/master/en/sig-infrastructure/command.md [了解详情](https://gitee.com/openeuler/community/blob/master/en/sig-infrastructure/command.md)

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

可以运行仓库里的main.c程序以观看提交后的效果。该main程序可以在Linux和类UNIX的macOS上运行，在Windows系统上，您可以参考openEuler开源创新实践课 [了解详情](https://gitee.com/openeuler/lfs-course/tree/master/lfs-7.7-systemd/documents)中的实验手册搭建环境以验证效果。运行该程序需要执行的命令如下：

```
cd pr/primary/src/
```

```
gcc main.c
```

```
./a.out
```

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

本页内容
