在GitHub创建和处理PR

基于上一节的github-demo项目,假设我们只是一个普通的开发者使用了这个代码库,如何能给它贡献自己的代码呢?为此,我们创建了两个GitHub账号:一个是项目的创建者boxue11,另一个,则是使用者puretears。

创建Pull Request

这部分操作,我们都是以puretears身份完成的。

为了给github-demo贡献代码,我们要先在github-demo的项目页面,点击右上角的Fork,把它复制到自己的仓库。这样,原始的项目中,Fork数字就会变成1:

image

而puretears自己的GitHub项目中,就会多出来一个github-demo:

image

这样,我们执行:

git clone https://github.com/puretears/github-demo.git \
    github-demo-puretears

把它克隆到本地。在routes.swift中,添加一个新路由来模拟我们贡献的代码:

router.get("info") { req in
    return "Display my information."
}

完成后,执行下面的命令提交并推送到GitHub:

git add .
git commit -m "Display my information"
git push -u origin master

这样,我们就把自己的改动推送到了自己Fork出来的仓库:

image

接下来,为了把这个改动推送到原始的仓库,我们得点击页面上的New pull request按钮,创建一个PR:

image

在这个页面上,base fork表示我们要请求合并改动的原始仓库,head fork表示我们自己克隆出来修改的仓库。确认好合并信息之后,就点击Create pull request按钮,这时GitHub就会要求我们输入一个合并说明:

image

完成后,再点击Create pull request按钮,PR就创建好了:

image

处理Pull Request

接下来,我们以boxue11的身份登录到Github,这时,github-demo项目中,就会看到有一个Pull reqests等待我们处理:

image

点进去,就会看到关于这个PR是否和当前代码有冲突,具体的改动等信息:

image

接下来,如果需要和提交PR的人沟通,就可以在页面下边留言,或者关闭这个PR表示拒绝合并:

image

如果我们决定接受合并,就可以点击上面绿色的Merge pull request按钮,实际上,这个按钮提供了三个选项:

image

其中:

  • Create a merge commit:表示把这个PR作为一个分支合并,并保留分支上的所有提交记录;
  • Squash and merge:表示只为这次合并保留一个提交记录;
  • Rebase and merge:表示直接把PR中的提交记录合并到base的分支,这里也就是master分支;

这里,我们就选择Create a merge commit,这时GitHub就会让我们再确认一次:

image

我们点击Confirm merge按钮,合并就算完成了:

image

这样,作为puretears我们就创建了自己的第一个PR,作为boxue11,我们也处理并接受了给自己项目的第一个PR。

你可能感兴趣的:(在GitHub创建和处理PR)