pull request 是什么?
Pull Request 是一种通知机制。你修改了他人的代码,将你的修改通知原来的作者,希望他合并你的修改,这就是 Pull Request。 引用自github的定义
为什么要使用 pr?
- 在一个项目中,人员的技术和风格参差不齐时,编码之后的项目增加阅读和修改成本,也很难让别人轻易去调整自己的代码.
- 不审核的代码,有些成员会选择无脑式的写法,处处copy,而不会进行内容的抽离和封装,大大增加了代码的耦合性.
- 人本身是存在不自觉性的,即使有了编码规范,在没有一段时间的适应和强制处理,可能大部分人都不会遵守.
基于以上的问题,我们选择引入pull request的方式,主旨也是希望通过一次审核增加提交代码的慎重以及保证整个项目的风格.
pull request 流程
假定目标分支为 dev, 用户a 分支为dev-a, 用户b 分支为dev-b
- 创建分支dev-a, dev-b
git checkout -b dev-a
git pull origin dev --rebase
git checkout -b dev-b
git pull origin dev --rebase
如果使用 source tree进行操作,需要指定拉取分支,和勾选变基代替合并选项
-
a 和 b 按照最小粒度进行commit, 直至完成一个功能点或者模块,当然也可以进行push,不过push的对象是dev-a 或者dev-b
-
a在进行pr 前需要进行一次拉取操作,保证和目标分支dev是兼容的,如果存在冲突则解决完冲突,推送至dev-a 分支,然后申请 dev-a 向dev的pull request
-
如果a先进行提交,然后b进行提交,审核通过合并dev-a分支后,发现dev-b分支与当前分支存在冲突,则拒绝b的pr,直至修改完毕后重新pr操作