前言
PR
全称pull request
,字面翻译来看就是拉取请求
。
就是在我们没有主分支(master
或 main
)写权限
,但发现项目存在漏洞并想要修复的情况下,所采取的动作。
给三方提PR
第一步:Fork 项目仓库(ant-design-vue)
fork 完成后,可以在自己的仓库中找到 fork
到的项目了:
第二步: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
按钮
第五步:按照 ant-design-vue
的要求,我们需要将特性分支 fix/ab
合入 ant-design-vue
主项目的 next
分支。然后点击下面的 Create pull request
按钮。然后就会走 ant-design-vue
的 ci
流程,如果全部通过后,那么我们本次的 PR
算是提交成功了。
第六步:就坐等作者审核PR了,如果通过后 next
分支会被合入 ant-design-vue
的下个版本中
下面这张图是我三年前向antd提交的PR,已经被merge到v2版本的主分支当中
配置PR合并
其实禁用
主分支
的写权限
是必然的,防止有人恶意向主分支
提交,污染仓库代码。万一咱们开源的项目也火了呢,谁能保证没有眼红的呢,抓紧看看你的仓库吧
前面简单说了如何向三方开源项目提PR
,下面聊一下如何配置
我们项目的PR合并
。
第一步:打开当前项目的Settings
选项
第二步:点击左侧Code and automation
类目下的 Branches
选项
第三步:点击右侧Add branch protection rule
第四步:填入被保护分支的名称,或者使用fnmatch
语法指定的命名模式匹配到的任何分支
第五步:直接点击 Create
经过上述五步,你们发现在客户端向远程主分支
推送代码会被rejected
,只能走文章开篇的提PR
流程。
PR审核工作流
可能有人会问,上图里面很多个选择项分别是干什么的?下面我们根据图片中出现的几个选项来聊一聊审核的工作流