Github 发布了开源项目后,如何管理PR?

79 阅读2分钟

前言

PR全称pull request,字面翻译来看就是拉取请求

就是在我们没有主分支(mastermain)写权限,但发现项目存在漏洞并想要修复的情况下,所采取的动作。

给三方提PR

第一步:Fork 项目仓库(ant-design-vue)

image.png

fork 完成后,可以在自己的仓库中找到 fork 到的项目了: image.png

第二步:clone 我们仓库中 ant-design-vue 到本地,创建 特性分支fix/ab

第三步:完成修改,将 特性分支 提交到远程

git add .
git commit -m 'fix: xxx'
git push origin -u fix/ab

第四步:然后返回我们仓库中的 ant-design-vue 项目,发现多了一条PR合并的提醒。点击 Compare & pull request 按钮

image.png

第五步:按照 ant-design-vue 的要求,我们需要将特性分支 fix/ab 合入 ant-design-vue 主项目的 next 分支。然后点击下面的 Create pull request 按钮。然后就会走 ant-design-vueci流程,如果全部通过后,那么我们本次的 PR 算是提交成功了。

image.png

第六步:就坐等作者审核PR了,如果通过后 next 分支会被合入 ant-design-vue 的下个版本中

下面这张图是我三年前向antd提交的PR,已经被merge到v2版本的主分支当中

image.png

配置PR合并

其实禁用 主分支写权限是必然的,防止有人恶意向主分支提交,污染仓库代码。万一咱们开源的项目也火了呢,谁能保证没有眼红的呢,抓紧看看你的仓库吧

image.png

前面简单说了如何向三方开源项目提PR,下面聊一下如何配置我们项目的PR合并

第一步:打开当前项目的Settings选项

第二步:点击左侧Code and automation类目下的 Branches 选项

第三步:点击右侧Add branch protection rule

image.png

第四步:填入被保护分支的名称,或者使用fnmatch语法指定的命名模式匹配到的任何分支

第五步:直接点击 Create

image.png

经过上述五步,你们发现在客户端向远程主分支推送代码会被rejected,只能走文章开篇的提PR流程。

PR审核工作流

可能有人会问,上图里面很多个选择项分别是干什么的?下面我们根据图片中出现的几个选项来聊一聊审核的工作流

Require a pull request before merging

Require status checks to pass before merging

Require conversation resolution before merging

Require signed commits

Require linear history

Require deployments to succeed before merging

Lock branch

Do not allow bypassing the above settings

Allow force pushes

Allow deletions

更新中……