在GitHub创建和处理PR

Git Essential

预计阅读时间: 6分钟

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

创建Pull Request

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

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

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

这样,我们执行:

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出来的仓库:

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

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

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

处理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。

What's next?

以上,就是关于PR的话题。至此,关于GitHub的讨论也就差不多了。在下一节,我们讨论一个刚才提到过的git功能rebase,为什么需要rebase呢?这个功能到底是做什么的呢?

关于我们

想循序渐进的跟上最新的技术趋势?想不为了学点东西到处搜索?想找个伙伴一起啃原版技术经典书?技术之外,还想了解高效的工作流技巧?甚至,工作之余,想找点儿东西放松心情?没问题,我们用4K开发视频,配以详尽的技术文档,以及精心准备的广播节目,让你渴望成长的技术需求,也是一种享受。

Email Address

10@boxue.io

客户服务

2085489246

关注我们

在任何你常用的社交平台上关注我们,并告诉我们你的任何想法和建议!

邮件列表

订阅泊学邮件列表以了解泊学视频更新以及最新活动,我们不会向任何第三方公开你的邮箱!

2019 © All Rights Reserved. Boxue is created by 10 11.