作为普通的开发者使用了一个开源代码库,发现了库中的bug或想对代码库的代码做一定的修改,又不想将代码库clone到本地
创建和处理PR 转自在GitHub创建和处理PR - 简书 (jianshu.com)
对于某个github-demo项目,假设我们只是一个普通的开发者使用了这个代码库,如何能给它贡献自己的代码呢?为此,我们创建了两个GitHub账号:一个是项目的创建者boxue11,另一个,则是使用者puretears。
创建Pull Request
这部分操作,我们都是以puretears身份完成的。
为了给github-demo贡献代码,我们要先在github-demo的项目页面,点击右上角的Fork,把它复制到自己的仓库。这样,原始的项目中,Fork数字就会变成1:
而puretears自己的GitHub项目中,就会多出来一个github-demo:
接下来是在线上对代码的修改,所以我用自己的截图,KhronosGroup是项目的创建者, WenkeZh是使用者。
我们在WenkeZh自己的github项目中的VK-GL-CTS(github-demo)中,进入到想要修改的文件,单击下图蓝线框住的部分(🖊),就可以对代码进行修改了。
修改好后在最下方单击commit changes保存修改
如果有多个文件需要修改就点开其他文件重复前两步步骤
这样,我们就在自己Fork出来的仓库中进行了改动:
接下来,为了把这个改动推送到原始的仓库,我们得点击页面上的Contribute ->Open pull request按钮,创建一个PR(pull request):
在这个页面上,base repository表示我们要请求合并改动的原始仓库,head repository表示我们自己克隆出来修改的仓库。输入一个合并说明, 确认好合并信息之后,就点击Create pull request按钮, PR就创建好了:
以下的步骤由项目的创建者完成,接下来的内容完全复制于在GitHub创建和处理PR - 简书 (jianshu.com)
处理Pull Request
接下来,我们以boxue11的身份登录到Github,这时,github-demo项目中,就会看到有一个Pull reqests等待我们处理:
点进去,就会看到关于这个PR是否和当前代码有冲突,具体的改动等信息:
接下来,如果需要和提交PR的人沟通,就可以在页面下边留言,或者关闭这个PR表示拒绝合并:
如果我们决定接受合并,就可以点击上面绿色的Merge pull request按钮,实际上,这个按钮提供了三个选项:
其中:
- Create a merge commit:表示把这个PR作为一个分支合并,并保留分支上的所有提交记录;
- Squash and merge:表示只为这次合并保留一个提交记录;
- Rebase and merge:表示直接把PR中的提交记录合并到base的分支,这里也就是master分支;
这里,我们就选择Create a merge commit,这时GitHub就会让我们再确认一次:
我们点击Confirm merge按钮,合并就算完成了:
这样,作为puretears我们就创建了自己的第一个PR,作为boxue11,我们也处理并接受了给自己项目的第一个PR。