OurBMC 社区贡献指南之 PR 使用指南

什么是 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 操作,然后就可以在本地对仓库代码进行修改。

OurBMC 社区贡献指南之 PR 使用指南_第1张图片

(1)提交PR

OurBMC 社区贡献指南之 PR 使用指南_第2张图片

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

OurBMC 社区贡献指南之 PR 使用指南_第3张图片

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

OurBMC 社区贡献指南之 PR 使用指南_第4张图片

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

OurBMC 社区贡献指南之 PR 使用指南_第5张图片

(3)提交 PR 内容填写

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

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

Pull Request 草稿功能

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

OurBMC 社区贡献指南之 PR 使用指南_第6张图片

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

OurBMC 社区贡献指南之 PR 使用指南_第7张图片

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 中去。

你可能感兴趣的:(git程序员)