【大牛之路】如何在github上为开源项目贡献

前言

我们在学习的日常中会用到的各种开源软件,大一点的Linux,Apache,Nginx,MySQL,Redis,小一点的Muduo,Axel,那么如何去给一个开源项目做贡献呢。

这里我主要介绍如何使用github来为开源项目贡献,或者说,使用github进行多人协作。

本文主要使用@Hg_Yi @dela @dongmengyuan 的Java Web项目作为示例,借用了@Axin的帐号来示范操作,感谢小伙伴们的友情支持。

正文

首先我们想为开源贡献的流程往往是:
1.找到一个需要的开源项目。
2.使用、或者学习它。
3.在学习/使用中发现问题,或者想为它做贡献(改bug,加feature)。

但问题是不知道如何贡献,或者说这个流程应该是怎样的。
这里我们用一个非常简单的例子来描述一下大致的流程。

首先Fork之

在你需要的项目主页,点击右上角的fork
【大牛之路】如何在github上为开源项目贡献_第1张图片
这样你能拥有一份项目的拷贝,同时看到你的项目与主分支有哪些差异。

Fork好啦

这就是你自己的代码,你想怎么就怎么改。

需要注意的是可以看到多了一行

This branch is even with xiyouLinuxJavaWeb15:master

表示我们与主分支目前没有任何的差异。
【大牛之路】如何在github上为开源项目贡献_第2张图片

把fork后的远程仓库拉到本地

这里就是准备在本地看代码和修改啦。
(这里我们已经进行了修改,并且push到fork的远程仓库)
【大牛之路】如何在github上为开源项目贡献_第3张图片

提交Issue

Issue就是对项目的疑问,包括bug的提交,可以说是一个与其他人(主要是项目的拥有者)交流的方式。
当然对于社区来说,更加频繁的交流可要通过邮件列表。

【大牛之路】如何在github上为开源项目贡献_第4张图片

【大牛之路】如何在github上为开源项目贡献_第5张图片

提交PR

准备提交PR(pull request)

【大牛之路】如何在github上为开源项目贡献_第6张图片

提交好的PR

【大牛之路】如何在github上为开源项目贡献_第7张图片

然后就是等待了,会有项目的开发者review你的PR,进行讨论,修改直到符合之后,便会merge进主分支,你也就为开源项目贡献了自己的代码。

与远程同步

为了及时同步远程主分支,我们先要添加一个远程分支,使用git remote add,添加成功后,我们在本地就可以用git fetch拉下来,然后查看日志,如果确认无误,就可以git merge。
当然这里也可以直接git pull自动进行merge(这里手误多加了一个分支)
【大牛之路】如何在github上为开源项目贡献_第8张图片

参考阅读

GitHub Pull Request
Github Issue
Git fetch和git pull的区别
Git基本概念
get log 查看提交历史
Pull Request的正确打开方式(如何在GitHub上贡献开源项目)

你可能感兴趣的:(小小总结,大牛之路)