什么是 pull requests ?
Pull Request (后面简称 PR)的流程简述:
一个在 github 上面的仓库,例如为 company/example。tom 基于这个 company/example 项目添加了一些新功能,tom 想将这个新功能合并到 company/example 上面去,这时就需要做的是在 company/example 创建一个 PR。当 company/example 的管理员看到这个 PR,并且审核通过了时候,这个新功能就可以合并到这个项目上面去了。
可以将这个 PR 大致理解为 git 中的 merge。
创建 PR 分为两种情况:
- 有源仓库的读写权限,基于 master 创建分支 feature。在 feature 开发完成后,创建一个 PR,这个 PR 作用是将 feature 分支合并到 master 上面去
- 无源仓库的读写权限,需要基于源仓库 fork 一个私有仓库,假设命名为 tom/example,在 tom/example 上面添加了新特性,开发完成后,创建一个 PR,这个 PR 的作用是将 tom/example 上面的新特性合并到 master 上面去
对于第一种情况,有人可能会疑惑,既然都有源仓库的读写权限了,那可以直接将 feature 上面的新功能 merge 到 master 上面去,为什么还要费力创建 PR 呢?
一般来说 master 上面是重要的发行版本代码,假如团队成员都可以随意修改容易出现问题。一般将 master 设置为保护分支,只有管理员可以修改。创建 PR 的作用就是团队成员在将代码合并到 master 前可以被管理员审核,如果有不合理的代码,管理员可以及时拒绝,并且撤销,可以降低 master 被随意修改的风险。同时,代码除了可以被 master 审核,还可以被其他团队成员看一下,了解你做了什么修改。
对于第二种情况,其实还是将 tom/example 中的 feature 分支,合并到 company/example 中的 master 中分支上。这个分支名只是举例说明的,实际要看情况。
参考:
https://help.github.com/en/articles/about-pull-requests
https://help.github.com/en/articles/creating-a-pull-request
https://help.github.com/en/articles/creating-a-pull-request-from-a-fork