这一章的内容,是如何给开源项目提交代码。开源项目,一般别人肯定不会给你权限直接操作仓库的。一个大型项目成百上千人开发的都很常见,这么人都给权限肯定很不安全,而且每个人都给权限也不现实啊。
如果你在使用开源项目的时候,发现别人写的有问题,想参与这个项目的开发,其实也是很容易的。GitHub 的这套大家都能参与的流程,其实还是使用的 Pull Request。但是又和上一节的内容,稍稍有些不同,且听我娓娓道来。
这次呢,我使用了两个不同的浏览器,登录了两个不同的 GitHub 账户来做演示。先来打开,https://github.com/canon4ever/pr_demo
1. Fork
开源的项目,大家是没有直接修改代码的权限的。但是注意看网站的右上角,有一个 Fork 按钮。

这个按钮的作用,是将对方仓库,拷贝一份到自己的仓库。你自己名下的仓库,你总有权限修改代码了吧?
Fork 完成后,会显示是从哪里过来的,现在大家就可以 Clone 到本地,然后修改代码了。

2. Clone 和修改
接着咱们直接点击,Open with GitHub Desktop,找合适的地方, Clone 下来

这里选择,为它的父项目做贡献,然后继续

使用编辑器打开以后,修改 README.md 如下
...
那我来吟诗吧:
```
天下风雨出我辈,一入江湖岁月催。
皇图霸业谈笑间,不胜人间一场醉。
```
项目修改完成后,写个注释,提交并 push。
3. Pull Request
回到 GitHub 网页上,点击 Pull request,

再点击,Create pull request

可评论下你做了什么,写点具体的内容。
4. Merge
然后会跳转到父项目的 PR 栏目里。切换到项目所有者的 GitHub 页面,现在就等待这个项目的所有者来操作了,他会点击 open this in GitHub Desktop,拉取你的代码做检查。他也有可能给你留言表达感谢。如果没什么问题,他就会做出合并了。

这就是参与开源项目的基础流程了。
5. 简单修改的方法
如果只是发现对方项目,一个非常小的错误,只需要简单修改一下,那上面的流程就有些繁琐了。更加简单的修改方式如下:
在对方仓库中,点开 README.md,直接点击编辑图标,加上标题,
## 江湖行
然后点击,Propose changes,再点击 Create pull request,写点注释,例如:加上标题了。
这样呢,项目的管理者,也会收到新的 Pull request,同样的,他觉得没问题后,就会执行 Merge 操作了。
还是切换到项目的所有者的 GitHub 账户,来执行下 Merge,再看看首页,标题就出现了。