什么是 Pull Request

Pull Request 译为拉取请求,简称 PR,是两个仓库或同仓库内不同分支之间提交变更的一种途径,同时也是一种非常好的团队协作方式,常用于团队的代码审查等场景。你拉取并修改了他人的代码后,将你的修改告知给代码的原作者,请求他合并你的修改,就称为 Pull Request。

Pull Request 执行流程

当你想修改别人仓库里的代码时,会执行以下流程:

  1. 首先 fork 他人的仓库,拷贝出一份和原仓库相同的仓库来。
  2. 将你要修改的分支 clone 到本地分支,进行修改。
  3. 发起 Pull Request 给原仓库,这样原作者就可以看见你做的修改并进行审核。如果他认可了你的修改,就会将你的分支 merge 到他的项目中。

创建 Pull Request

参与 Gitee 中的仓库开发,最常用方式是 “Fork+Pull” 模式。在 “Fork+Pull” 模式下,仓库参与者不必向仓库创建者申请提交权限,而是在自己的托管空间下建立仓库的派生(Fork)。至于在派生仓库中创建的提交,可以非常方便地利用 Gitee 的 Pull Request 工具向原始仓库的维护者发送 Pull Request。

(1)Fork 仓库

fork 仓库是非常简单的,进到仓库页面,然后找到右上角的 fork 按钮,点击后选择 fork 到的命名空间,再点击确认,等待系统在后台完成仓库克隆操作,就完成了 fork 操作,然后就可以在本地对仓库代码进行修改。

image.png

(1)提交PR

image.png

首先,您的仓库与目标仓库必须存在差异,这样才能提交,比如这样:

image.png

如果不存在差异,或者目标分支比你提 Pull Request 的分支还要新,则会得到这样的提示:

image.png

然后,填入 Pull Request 的说明,点击提交 Pull Request,就可以提交一个 Pull Request 了,就像下图所示的那样:

image.png

(3)提交 PR 内容填写

在提交 PR 页面左侧填入标题和相关的变更内容说明,右侧是几个配置项。下面简单介绍这些配置项的用法。

  • 审查人员:用于审查该次提交的相关人员,一般是仓库的负责人。
  • 测试人员:用于测试该次提交的相关人员,一般是仓库的负责人。
  • 优先级:提交人可以给 PR 设置优先级。
  • 标签:提交人可以给 PR 设置标签。
  • 关联 Issue:可以给该 PR 关联 Issue。用户可以在关闭 Pull Request 的时候同时关闭 issue。
  • 里程碑:相关的 PR 可以放到一个里程碑里。里程碑通常可以理解为不同的版本或不同的迭代。

Pull Request 草稿功能

Gitee 现已支持提交 PR 草稿的功能,当项目成员还没有完成开发时,可以在提交 PR 时选择创建 Pull Request 草稿。

image.png

同时,使用 PR 草稿的功能也有助于让其他成员检查你的 Fork 以获得反馈,以草稿形式提交的 PR 会在该 PR 的各个相关页面给予提示,并且该 PR 无法合并,当准备好进行代码审查时,可以取消 PR 的草稿状态,进行正常的代码审查与合并。

image.png

Pull Request 关联 Issue

通过 Pull Request 关联 Issue,用户可以在关闭 Pull Request 的时候同时关闭 issue。关联功能具有以下特点:

  • 一个 PR 可以关联多个 issue,例如同时关联 issue1,issue2 格式为:#issue1ident, #issue2dent
  • PR 关联 issue 后,issue 的状态会自动更改为进行中,当 PR 被合并后,issue 会更改为关闭状态。

个人版和企业版的区别:

  • 个人版,PR 只能关联当前仓库的任务
  • 企业版,PR 可以关联所有企业的任务。

对 Pull Request 的 bug 修改如何提交到该 Pull Request 中

对于 Pull Request 中的 bug 修复或者任何更新动作,均不必要提交新的 Pull Request,仅仅只需要推送到您提交 Pull Request 的分支上,后台会自动更新这些提交,将其加入到这个 Pull Request 中去。


OurBMC
28 声望20 粉丝

OurBMC社区是由基础软硬件企业、第三方机构、高等院校、个人开发者等各方共同参与建设的开源社区,社区基于开放、平等、协作、创新的基本原则,携手社区成员,共同构建自主、先进、软硬一体的BMC技术全栈,共同推...