7.1 采纳Pull Request的方法
点击Merge pull request按钮,Pull Request的内容便会自动合并至仓库。在采纳之前,请尽量将接收到的Pull Request拿到本地开发环境中进行检查,确认是否能够正常运行以及代码是否安全。或者用将要在第8章中介绍的Jenkins等持续集成工具进行自动测试,保证新代码不破坏原有功能之后,再合并进仓库。
7.2 采纳Pull Request前的准备
1、确认Pull Request送来的代码是否运行正常。
2、代码审查
在GitHub上可以对Pull Request的具体的某行代码进行评论。
3、在本地开发环境中反映Pull Request的内容
将接收方的本地仓库更新至最新状态
首先,将PR接收方的仓库clone到本地,如果已经clone过,那么请进行pull 等操作更新至最新状态。
获取发送方的远程仓库
将PR发送方的仓库设置为本地仓库的远程仓库,获取发送方仓库的数据。在本例中,我们将图7.8右上的仓库设置为远程仓库,进行fetch。
$ git remote add PR发送者 git@github.com:PR发送者/first-pr.git
$ git fetch PR发送者
创建用于检查的分支
我们需要创建一个分支,用来模拟采纳PR后的状态。分支名暂定为pr1,现在gh-pages与pr1分支的内容完全相同。
$ git checkout -b pr1
合并
将已经fetch完毕的“PR发送者/work”的修改内容与pr1分支进行合并。也就是图7.9下侧箭头(merge)代表的操作。
$ git merge PR发送者/work
这样一来,pr1分支中就加入了“PR发送者/work”分支的修改内容,在实际开发中,各位需要通过自动测试等手段检查软件是否能正常运行。即运行、测试pr1分支的代码。
删除分支
检查结束后pr1分支就没用了,可以直接删除。我们切换至pr1之外的分支,运行下面的代码。
$ git branch -D pr1
7.3 采纳Pull Request
采纳PR有两种方式:自动合并,在GitHub中直接点击Merge pull request按钮;手动合并,在本地通过CLI进行合并操作再push至GitHub。
下面是手动合并的方法:
合并到主分支
步骤:
1、切换至主分支(本例中为gh-pages)
2、合并“PR发送者/work”分支的内容
$ git checkout gh-pages
$ git merge PR发送者/work
push修改内容
1、在push之前,为保险起见,我们先查看本地与GitHub端仓库代码的差别。
2、确认没有目的之外的差别后,进行push。
$ git diff origin/gh-pages
$ git push
用这种方法处理后,仓库的Pull Request会自动从Open状态变为Close状态。